我不確定這是一個複雜的問題,還是我錯過了一些微不足道的事情,但我無法弄清楚這一點。MySQL - 在一列上使用MAX(),並從行的其餘部分返回數據?
我有一個列出的錯誤消息,他們出現在時間的表:
id created_at content
1 2017-08-05 08:00 ...
2 2017-08-15 16:00 ...
3 2017-08-15 16:01 ...
4 2017-08-15 16:02 ...
5 2017-08-25 16:00 ...
I組這些行一起根據日期和時間以及數很多錯誤是如何出現:
SELECT DATE_FORMAT(created_at, '%d.%m. %h'),
COUNT(*) AS errorCount
FROM db.errorData
GROUP BY DAY(created_at), HOUR(created_at);
所得在此:
created_at errorCount
2017-08-05 08 1
2017-08-15 16 3
2017-08-25 16 1
現在我想用MAX()
t獲得最高的errorCount。我使用子查詢來做到這一點:
SELECT MAX(errorCount) AS errorMax
FROM(
SELECT DATE_FORMAT(created_at, '%d.%m. %h'),
COUNT(*) AS errorCount
FROM db.errorData
GROUP BY DAY(created_at), HOUR(created_at)
) alias;
但是,我也想得到錯誤最多的日期。簡單地將created_at
添加到第一個SELECT不起作用,因爲它只返回第一行的值。
我不知道如何使這項工作現在。你能幫我嗎?
如果存在多於一天的大多數錯誤,那麼您希望結果如何? –