我在甲骨文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