2012-03-28 17 views
1

Ich habe diese Abfrage, um die am häufigsten Tagen der Woche und Stunden zu berechnen:Wählen Reihen Berechnung passende

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

Nun möchte ich die IDs aller Zeilen auszuwählen, die wd = "Fri" AND hr = "9"

I entsprechen habe versucht, eine WHERE-Klausel hinzuzufügen, aber ich konnte nicht, da ich WHERE auf Aliase nicht verwenden kann.

+0

Daten austauschen Ihre Tisch geschieht und Ihre Abfrage, die Sie bis jetzt erreicht haben. –

Antwort

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 

Sie könnten auch Sie verwenden sie einen aliased wählen, aber die Leistung würde nicht so gut sein, weil auf diese Weise Filterung vor Aggregation

Verwandte Themen