[英]Complex SQL query (COUNT, DISTINCT, case when, LEFT OUTER JOIN)
我有兩張桌子
用戶:
+------------+-----------+
| user_id | company |
+------------+-----------+
| 1 | Apple |
| 2 | Microsoft |
+------------+-----------+
會議:
+------------+---------+------------+-----------+------------+
| session_id | user_id | start_time | end_time | user_agent |
+------------+---------+------------+-----------+------------+
| 1 | 1 | 12:00:00 | 12:20:00 | X |
| 2 | 1 | 14:10:00 | 14:14:00 | Y |
+------------+---------+------------+-----------+------------+
我想在一個查詢中查詢兩個表,並具有如下所示的輸出:
+------------+-----------+--------------------+
| user_id | company | unique_user_agents |
+------------+-----------+--------------------+
| 1 | Apple | 2 |
| 2 | Microsoft | 0 |
+------------+-----------+--------------------+
帶有這樣的查詢:
x
SELECT users.user_id, users.company_name, COUNT(DISTINCT (case when sessions.start_time >= '11:00:00' AND sessions.end_time <= '15:30:00' then sessions.user_agent)) FROM users GROUP BY users.user_id LEFT OUTER JOIN sessions ON users.user_id = sessions.user_id
但是我在語法方面遇到錯誤,我知道這是錯誤的,但是我無法重新安排以取得成功。
有任何想法嗎?
總是以end
並且在所有聯接之后必須保留group by
的情況
SELECT users.user_id, users.company_name, COUNT(DISTINCT case when sessions.start_time >= '11:00:00' AND sessions.end_time <= '15:30:00' then sessions.user_agent end)
FROM users
LEFT OUTER JOIN sessions
ON users.user_id = sessions.user_id
GROUP BY users.user_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.