Выберите строки, соответствующие расчету - PullRequest
1 голос
/ 28 марта 2012

У меня есть этот запрос для вычисления наиболее распространенных дней недели и часов:

SELECT
  DATE_FORMAT(DATE, '%a') AS wd,
  HOUR(DATE) AS hr,
  COUNT(*) AS cnt
FROM 
 users
GROUP BY
  wd, hr
ORDER BY
  cnt DESC

Теперь я хочу выбрать идентификаторы всех строк, которые соответствуют wd = "Fri" AND hr = "9"

Я попытался добавить предложение WHERE, но не смог, поскольку не могу использовать WHERE для псевдонимов.

Ответы [ 2 ]

1 голос
/ 28 марта 2012
SELECT ID
FROM   users
WHERE  DATE_FORMAT(DATE, '%a') = 'Fri' AND HOUR(DATE) = 9
0 голосов
/ 28 марта 2012
SELECT
  DATE_FORMAT(DATE, '%a') AS wd,
  HOUR(DATE) AS hr,
  COUNT(*) AS cnt
FROM users
WHERE DATE_FORMAT(DATE, '%a') = 'Fri'
AND HOUR(DATE) = 9
GROUP BY wd, hr
ORDER BY cnt DESC

Вы также можете сделать это с использованием псевдонима выбора, но производительность будет не такой же хорошей, потому что этот способ фильтрации происходит до агрегации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...