如何做 MAX COUNT 以便查詢返回 1 結果 SQL

摩根大通

我有以下查詢:

SELECT
    Id,
    EmailDomain,
    COUNT(Users) AS UserCount
FROM 
    Table_Moragn
GROUP BY 
    Id, EmailDomain

返回以下結果:

ID 電子郵件域 用戶數
1 @yahoo.com 1
1 @gmail.com 4
2 @hotmail.com 1
3 @aol.com 1
3 @comcast.com 1

我需要 Id 和電子郵件域以供以後查詢,但我不想要多個電子郵件域。所以我希望我的結果是這樣的:

ID 電子郵件域 用戶數
1 @gmail.com 4
2 @hotmail.com 1

原來我想通過子查詢或通過

SELECT
    Id,
    EmailDomain,
    COUNT(Users) AS UserCount
FROM 
    Table_Morgan
GROUP BY
    Id, EmailDomain
HAVING
    COUNT(Users) = (SELECT MAX(UserCount)
                    FROM (EmailDomain, COUNT(Users) as UserCount
                    FROM Table_Morgan
                    GROUP BY EmailDomain) AS T)

但我收到一個錯誤

當子查詢沒有用EXISTS引入時,select列表中只能指定一個表達式

或者說它不能用 = 返回多個結果。

我在 ID 3 等情況下看到的一個問題,其中計數是相同的數字。

我嘗試在查詢的末尾添加 LIMIT,但 SQL 不喜歡它。

羅馬音樂節

使用Dense_Rank()窗口函數也可以顯示並列排名。

SELECT   -- main result
  *
FROM (SELECT    -- ranking here
  *,
  DENSE_RANK() OVER (PARTITION BY Id ORDER BY UserCount DESC, EmailDomain) rnk
FROM (SELECT  -- group count here
  Id,
  EmailDomain,
  COUNT(Users) AS UserCount
FROM Table_Moragn
GROUP BY Id,
         EmailDomain) x) y
WHERE y.rnk = 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL 查詢返回錯誤的結果

使用 COUNT(*) 和 MAX() 返回多列的 MySQL 查詢

SQL:合併查詢結果

除了特定的一行之外,如何獲取 SQL 查詢結果?

如何將 sql 查詢存儲到變量中,而不是結果中?

SQL查詢選擇返回結果不在一個表中

SQL Server命令將查詢結果返回為json不適用於python

我如何做 SQL Server 创建表数据类型,如 1,000.00

SELECT COUNT(*)GROUP BY DJANGO如何做?

如何做 foreach 1 直到 100?

如何做显示SQL的Ibatis版本

如何在 SQL 中获得 MAX(COUNT)?

如何始終只顯示 SQL 查詢結果表中相同值的第一個值?

添加 Count() 列的 MySQL JOINED 表查詢在零匹配時返回 1

Terraform:如何忽略數據源“aws_instances”的“錯誤:您的查詢沒有返回結果”

當結果應為 0 時,SQL COUNT 返回 No Data

如何在另一個查詢中使用 SELECT 查詢的結果

如何使用 SQL 子查詢來限制父查詢中返回值的範圍?

MySQL 5.5.15 - 查詢 REGEXP 模式返回奇怪的結果

ElasticSearch Term 查詢返回錯誤結果

EF 6 Plus - 如何做未來的原始查詢

聚合查詢結果

每个表单提交时如何做$ id + 1?

如何在同一查詢/語句中的另一個子選擇中使用 SQL 選擇結果?

使用MAX和COUNT的SQL

如何做等同于SQL的double for循环附加

我如何做 SQL 到 LINQ 的“IN”和“DISTINCT”

如何做内存中的SQL Server进行集成测试?

當內部查詢沒有返回結果時,外部查詢非常慢