我需要依靠一列不同的值,如:計數空值作爲唯一的值
Hours
1
1
2
null
null
null
結果必須是:。我的查詢是:
select count(distinct hour) from hours;
但它返回:2.我還測試:
select count(*) from hours group by hour
但它返回三行:
(1) 3
(2) 2
(3) 1
我怎麼能算空值的值爲1並使用不同的方法來避免重複計數?
我學習先進的SQL,他們希望我爲所有的解決方案,這些要求:
「儘量減少你需要解決的查詢子查詢的數量。此外,您不允許使用以下構造:「
- SELECT在FROM或SELECT中。您可以進行子查詢(在WHERE或HAVING中選擇)
- 聚合函數的組合,例如COUNT(COUNT ..)),SUM(COUNT ..))等等。
- UNION如果你能避免它。
- 非標準功能(如NVL)
- CASE
玩弄COALESCE(COL,0) – Strawberry 2013-02-23 12:40:05
@Strawberry:那會計數'0'和'空'作爲相同的值 – Andomar 2013-02-23 12:40:30
是的,它會!!! – Strawberry 2013-02-23 12:42:47