Åñòü äâà ãîòîâûõ âàðèàíòà SQL-çàïðîñà äëÿ îäíîé è òîé æå çàäà÷è. Ïîìîãèòå ðàçîáðàòüñÿ, êàêîé äîëæåí áûòü ïðàâèëüíûé SQL-çàïðîñ.
Áûëà çàäà÷à: íàïèñàòü SQL-çàïðîñ ê áàçå, ÷òîáû ïîñ÷èòàòü ïðîñìîòðû ïî äíÿì íà äâóõ ïëîùàäêàõ 139 è 140. Äàíà òàáëèöà ñ íàçâàíèÿìè ñîáûòèé è äðóãèìè äàííûìè.
Íàçâàíèå îñíîâíîé òàáëèöû – events.events
Ïðîñìîòð – ñîáûòèå content_watch â ñòîëáöå name
Ïëîùàäêà – subsite_id = 139 è 140
Âðåìÿ – ïîëå ts (â ôîðìàòe 2016-01-01 10:15:11.525)
 îñíîâíîé òàáëèöå åñòü åùå òàêèå ñòîëáöû: id, user_id, site_id
ÏÅÐÂÛÉ ÂÀÐÈÀÍÒ
SELECT count(*)
FROM events.events
WHERE (subsite_id = 139 OR subsite_id = 140) AND name = content_watch
AND ts >= DATEADD(DAY, -2, GETDATE())
GROUP BY subsite_id;
ÂÒÎÐÎÉ ÂÀÐÈÀÍÒ
SELECT T1.ts_date, T1.cnt AS 139, T2.cnt AS 140
FROM
(SELECT DateValue(ts) AS ts_date, COUNT(*) AS cnt
FROM events
WHERE name='content_watch'
AND subsite_id=139
GROUP BY DateValue(ts)
) AS T1
LEFT JOIN
(SELECT DateValue(ts) AS ts_date, COUNT(*) AS cnt
FROM events
WHERE name='content_watch'
AND subsite_id=140
GROUP BY DateValue(ts)
) AS T2
ON T1.ts_date = T2.ts_date
ß òîëüêî íà÷àëà ó÷èòü SQL, ÷èòàþ êíèæêó è äåëàþ ïåðâóþ çàäà÷êó. Ïîìîãèòå, ïîæ-òà.
http://www.sql.ru/forum/1260076/proverit-sql-zapros