2012-03-28 90 views
1

选择行我有这个疑问来计算一周中最常见的日期和时间:匹配计算

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"

我的所有行的ID的已经尝试添加WHERE子句,但由于我不能在别名上使用WHERE,所以我无法做到这一点。

+0

的数据和询问你到现在为止。 – 2012-03-28 11:26:17

回答

1
SELECT ID 
FROM users 
WHERE DATE_FORMAT(DATE, '%a') = 'Fri' AND HOUR(DATE) = 9 
0
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 

你可以这样做,也是使用别名的选择,但性能会一样好,因为这样一来过滤正在发生的表的份额前聚集