我正在尝试查找日期时间行的maxcount。
也就是说,我试图在DATETIME信息列中显示最常出现的月份的名称。
这是我的代码:
Select MONTHNAME(a.AF_Zeit) as Monat
From abflug a
group by MONTH(a.AF_Zeit)
having count(AF_Zeit) = (select max(count(MONTH(AF_Zeit)))
from abflug
group by MONTH(AF_Zeit))
mySQL返回消息:“#1111 - 无效使用组功能”
我不明白! 我听说有其他可能性来获得这个,但我有点必须用子选择。 我非常感谢任何帮助。
答案 0 :(得分:1)
我假设您正在尝试在ABFLUG表的AF_ZEIT列中显示最常出现月份的名称。
你是怎么做到的?让我们从概念上解决这个问题。
首先,您需要一个虚拟表(放置它时的子选择),显示ABFLUG表的每一行的月份名称。
SELECT MONTHNAME(a.AF_Zeit) as Monat
FROM ABFLUG A
然后你需要计算这些项目(或者,你可以说,按月获得直方图)。这样做会。这是一个较小的虚拟桌子。
SELECT COUNT(*) NNN, MONTHNAME(a.AF_Zeit) as Monat
FROM ABFLUG A
GROUP BY MONTHNAME(a.AF_Zeit)
然后,您需要操纵该表的行以按降序频率对它们进行排序,并显示第一个(最常见的)一个。
SELECT Z.Monat FROM (
SELECT COUNT(*) NNN, MONTHNAME(a.AF_Zeit) as Monat
FROM ABFLUG A
GROUP BY MONTHNAME(a.AF_Zeit)
)Z
ORDER BY Z.NNN
LIMIT 1
请注意,这方面的难点在于概念清晰地说明您在虚拟表的用语中尝试做什么。