我有通話詳細記錄表。每行有UserId
和UserBNumber
。計數(*)返回null
我也得到了有UserId
和Number
的表,所以有數字我可以說什麼是用戶的ID。
因此,從每個CDR記錄我可以說什麼是一個誰打電話誰收到電話的ID。
有時候用戶調用其心不是我的用戶數據庫(電話網絡外)
現在數字我想有查詢,給了我UserAId(caller), UserBId(receiver), count(*)
,這樣我就知道之間的連接數用戶。
UserAId, UserBId, NumberOfConnections
如果接收呼叫的號碼不在我的表中,則UserA呼叫網絡外的其他人。
我想有結果:
UserAId, NULL, NumberOfConnectionsOutsideTheNetwork
這裏是我的查詢:
TableA: CDR Table
TableB: User -> Number table
select A.UserId, B.UserId, count(*)
from select tableA A
left outer join tableB B
on A.UserBNumber = B.Number
group by A.UserId, B.UserId
問題是,我COUNT(*)有時會返回NULL。
我在做什麼錯了?
您真正的查詢是什麼樣的?如果我沒有弄錯,那麼無論數據是什麼樣子,該查詢都不會返回一個空值來進行計數。其實我不能提出任何查詢的地方'count(*)'可以返回一個空值。 – Guffa 2010-11-06 23:48:54
問題是我使用:插入到我的表中...上面的查詢結果。當我只使用select和group by ...具有COUNT(*)爲null時,它返回0行,但如果從我的問題中插入查詢結果,我有一條錯誤消息無法將NULL值插入到NumberOfConnections列 – gruber 2010-11-07 00:01:52
我嘗試了插入一個帶有非空字段的表,從一個select中加入一個空表,並且我仍然沒有得到任何錯誤。我甚至沒有得到零值,從這樣的查詢返回的任何行都會有一個或多個計數。它會計算每個組中記錄的數量,並且不能有一個記錄爲零的組。 – Guffa 2010-11-07 00:30:25