這裏的不同條件和總數計算是一個樣表我有SQL查詢來找到在同一查詢
Logs
user_id, session_id, search_query, action
1, 100, dog, A
1, 100, dog, B
2, 101, cat, A
3, 102, ball, A
3, 102, ball, B
3, 102, kite, A
4, 103, ball, A
5, 104, cat, A
其中 錯過=爲同一USER_ID和相同的會話ID,如果動作A其次是行動B,它被稱爲小姐。
注意:只有在行動A發生後纔可能發生行動B.
我能夠找到所有用戶和會話中每個唯一search_query的未命中數。
SELECT l1.search_query, count(l1.*) as misses
FROM logs l1
WHERE NOT EXISTS
(SELECT NULL FROM logs l2
WHERE l1.user_id = l2.user_id
AND l1.session_id = l2.session_id
AND l1.session_id != ''
AND l2.action = 'B'
AND l1.action = 'A')
AND l1.action='A'
AND l1.search_query != ''
GROUP BY v1.search_query
order by misses desc;
我想爲每個唯一的search_query找到miss_percentage =(失誤次數/總行數)* 100的值。我無法弄清楚如何在一個查詢中找到一個條件計數並且沒有這個條件的計數。任何幫助都會很棒。
expected output:
cat 100
kite 100
ball 50
對不起,忘了提及此之前。我在亞馬遜紅移表中運行此查詢。我收到以下錯誤。 '執行SQL命令時發生錯誤: SELECT l1.search_query,count(NOT EXISTS時的情況) (SELECT 1 FROM logs l2 WHERE l1.user_id = 1 ... 錯誤:此類型的相關子查詢模式不是支持由於內部錯誤[SQL狀態= XX000]' – srini