gpt4 book ai didi

mysql - 从子查询中选择具有最大值的行,而不使用 LIMIT

转载 作者:行者123 更新时间:2023-11-28 23:22:49 25 4
gpt4 key购买 nike

假设我有一张表films(film, category)。我想找到电影最多的类别。我该如何不使用 LIMIT?

我想我可以做这样的事情:

SELECT category
FROM
(SELECT category, COUNT(*) AS num
FROM films
GROUP BY category) AS T1
WHERE num =
(SELECT MAX(num)
FROM
(SELECT category, COUNT(*) AS num
FROM films
GROUP BY category) AS T2)

但是有没有更优雅的方法呢?最好是我不必多次编写相同的子查询?

谢谢!

(如果你想知道为什么我不能使用 LIMIT,那是作业)

最佳答案

您可以使用变量来创建行号:

SELECT category
FROM
(
SELECT
category
COUNT(*) as NumOfFiles
,(@rn:= @rn + 1) as RowNumber
FROM
Films f
CROSS JOIN (SELECT @rn:=0) vars
GROUP BY
category
ORDER BY
COUNT(*) DESC
) t
WHERE
t.RowNumber = 1

关于mysql - 从子查询中选择具有最大值的行,而不使用 LIMIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40792821/

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