我在甲骨文12C兩個表,目的是計算表2中所有出現具有標誌NULL,而且旁邊還顯示0到存在於表1如何統計Oracle中兩個表的發生次數?
table1的
ID,Name
001,Bob
009,Alice
015,Bob
019,Bob
026,Alice
500,Rob
505,Rob
表2
名稱ID,Flag,Timestamp
001,NULL,02/04/2016 16:33:13,991000
010,NULL,02/04/2016 16:33:14,991000
023,NULL,02/04/2016 16:33:15,991000
019,True,02/04/2016 16:33:16,991000
026,True,02/04/2016 16:33:17,991000
500,NULL,02/04/2016 16:33:18,991000
505,NULL,02/04/2016 16:33:19,991000
我想獲得
Name,COUNT
Alice,0
Bob,1
Rob,2
我嘗試到目前爲止是:
SELECT table1.Name, count(table1.Name) AS count
FROM table2
LEFT OUTER JOIN table1
ON table2.ID = table1.ID
WHERE table2.Flag IS null AND trunc(table2.Timestamp) = TRUNC(SYSDATE)
GROUP BY table1.Name
返回
Name,COUNT
Bob,1
Rob,2
謝謝你給它一個嘗試,我明白爲什麼你的解決方案應該工作,但它並沒有爲我工作。也許我已經簡化了我的真實任務,還有一個額外的where子句從今天起限制記錄,不知道爲什麼它應該重要,但在這一點上我完全失去了 – Ninius86
猜測?日期字段在table2上?如果是這樣,左連接的右表中的條件應該只放在on子句中,而不放在where子句中。在裏面加''和table2.datefield = trunc(sysdate)''。 @ ninius86當放置在where子句中時,由於空值比較,聯接變爲內部聯接。 – sagi