Статистика - Ежедневный режим из таблицы MySQL с числами и датой - PullRequest
0 голосов
/ 20 октября 2010

Мне нужна помощь в написании запроса MySQL, который захватывает режим (наиболее часто встречающееся число) каждый день

Набор данных выглядит примерно так

datetime number
2010-01-01 00:35:00 500
2010-01-01 01:15:10 500
2010-01-02 01:25:10 1500
2010-01-02 01:35:10 50
2010-01-03 12:35:50 100
2010-01-05 05:25:10 2500

(и т.д.)

Ответы [ 2 ]

1 голос
/ 20 октября 2010

Следующее должно дать вам режим в день:

SELECT x.* FROM 
(
 SELECT datetime, number, COUNT(*) AS Ct
 FROM table
 GROUP BY datetime, number
) x
INNER JOIN 
(
SELECT datetime, MAX(Ct) AS MaxCt
FROM (
 SELECT datetime, number, COUNT(*) AS Ct
 FROM table
 GROUP BY datetime, number
) y
GROUP BY datetime
) z
ON z.MaxCt = x.Ct
AND z.datetime = x.datetime

Примечание: он не делает ничего особенного, когда у вас есть несколько номеров с одинаковой модальной частотой - вы получите несколько строк для этогодата.

0 голосов
/ 20 октября 2010

Вы можете использовать GROUP BY и LIMIT, чтобы выполнить это за данный день:

SELECT number, count(number) AS qty 
FROM table 
GROUP BY number 
ORDER BY qty DESC 
LIMIT 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...