簡體   English   中英

從計數結果中選擇max()以獲取mysql中不同ID的值

[英]select max() from result of count for distinct ids in mysql

我有一個具有以下結構的表:

id    name
1     X
1     X
1     Y
2     A
2     A
2     B

基本上我想做的是編寫一個查詢,該查詢返回X表示1,因為X重復了Y次以上(2次),返回A表示2。因此,如果一個值出現的次數大於另一個值,則我的查詢應該返回該值。 抱歉,標題令人困惑,但我找不到更好的解釋。 到目前為止,這是我嘗試過的:

SELECT MAX(counted) FROM(
    SELECT COUNT(B) AS counted
    FROM table
    GROUP BY A
) AS counts;

問題是我的查詢應返回除計數之外的實際值。

謝謝

這應該工作:

SELECT count(B) as occurrence, A, B
FROM table
GROUP BY B 
ORDER BY occurrence DESC
LIMIT 1;

請檢查: http : //sqlfiddle.com/#!9/dfa09/3

您可以使用GROUP BY子句嘗試這樣。 在此處查看演示

select *, max(occurence) as Maximum_Occurence from
(
select B, count(B) as occurence
from table1
group by B
) xxx

這就是我最終解決問題的方式。 不是最有效的方法,但要完成工作:

select A,B from 
(select A,B, max(cnt) from 
(select A ,B ,count(B) as cnt 
    from myTable 
    group by A,B 
    order by cnt desc
) as x group by A
) as xx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM