gpt4 book ai didi

mysql - 获取每行 COUNT() MYSQL 的 MAX()

转载 作者:可可西里 更新时间:2023-11-01 08:34:41 24 4
gpt4 key购买 nike

我有接下来的 2 个表:

表查询和表时间:

id | text     id | mid | country
1 hello 1 1 UK
2 hi 2 1 PL
3 sd 3 2 USA

id = mid,国家不同(英国、美国等)。

我需要制作下一个 list :

UK - text 30 rows (this text has most mid in table 2 for UK)
USA - text 25 rows
PL - text 10 rows
...
SS - text 1 rows.

现在我有下一个想法:获取每个国家/地区的哪个 MID 具有最大行数,并通过 mid=id 获取文本并对其进行排序。

SELECT time.country,querys.text,COUNT(mid) AS cnt 
FROM time INNER JOIN `querys` ON(time.mid = querys.id)
GROUP BY mid
ORDER BY country,cnt
DESC

但是通过这段代码,我收到了所有带有计数的文本。比如

UK text1 30, 
UK text2 25,
PL text2 10,
PL text3 5 ..

但是每个国家/地区我只需要一个最大值,有人可以帮助如何将每个国家/地区的查询减少到 1 个最大文本吗?

最佳答案

SELECT  a.country, 
b.text,
COUNT(*) AS cnt
FROM time a
INNER JOIN querys b
ON a.mid = b.id
INNER JOIN
(
SELECT Country,
MAX(totalCount) max_count
FROM
(
SELECT Country, Mid,
COUNT(*) totalCount
FROM time
GROUP BY Country, Mid
) s
GROUP BY Country
) c ON a.country = c.country
GROUP BY a.country, b.text, c.max_count
HAVING COUNT(*) = c.max_count
ORDER BY cnt DESC

输出

╔═════════╦══════╦═════╗
║ COUNTRY ║ TEXT ║ CNT ║
╠═════════╬══════╬═════╣
║ UA ║ sdf ║ 10 ║
║ USA ║ qw ║ 2 ║
╚═════════╩══════╩═════╝

关于mysql - 获取每行 COUNT() MYSQL 的 MAX(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16498406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com