MySQL Distinct (уникальные) значения с течением времени - PullRequest
0 голосов
/ 23 февраля 2011

У меня есть вопрос о создании запроса MySQL.У меня есть таблица с одним столбцом, содержащим значения, а другой столбец с отметками времени.То, что я хотел бы сделать, это получить количество различных (уникальных) значений для поля от определенной эпохи до различных моментов времени, чтобы я мог построить график количества уникальных значений во времени.Например, я хотел бы, чтобы результат запроса выглядел следующим образом:
Date, COUNT (DISTINCT col1)
2011-02-01, 10
2011-02-02, 16
2011-02-03, 24
и т. Д.

Обратите внимание, что эти значения представляют собой число различных значений, начинающихся в один и тот же момент времени.В настоящее время для достижения этой цели я использую цикл в PHP для повторения одного запроса для каждой даты, и это занимает вечно, поскольку у меня большая БД.Чтобы улучшить картину, неэффективный код, который я хотел бы заменить, выглядит следующим образом:

for($i=0;$i<count($dates),$i++){      
    $qry = "SELECT COUNT (DISTINCT `col1`) FROM `db`.`table` WHERE `Date` BETWEEN '".$EPOCH."' AND '".$dates[$i]."';";    
}

Буду признателен за любую помощь.
Спасибо

Ответы [ 2 ]

0 голосов
/ 23 февраля 2011
SELECT DATE_FORMAT(date_column, "%Y-%m-%d") AS date_column, COUNT(visitors) AS visitors FROM table GROUP BY DATE_FORMAT(date_column, "%Y-%m-%d") ORDER BY date_column desc"
0 голосов
/ 23 февраля 2011

Если понял ваш вопрос, вы можете использовать оператор GROUP:

SELECT StampCol, COUNT(DISTINCT DataCol) FROM MyTable GROUP BY StampCol
...