2016-01-24 71 views

回答

0
SELECT COUNT(*) as countNullRows FROM yourTable WHERE columnName IS NULL; 
SELECT COUNT(*) as countNonNullRows FROM yourTable WHERE columnName IS NOT NULL; 
+0

rowName是每列的名稱?? –

+0

對不起,我的錯。我的意思是編寫columnName(編輯答案)...它是你檢查它是否有空值或非空值的列的名稱。 – PetrHejda

+0

但是不止一列,我必須在我的where子句中添加一列每一列? –

1

你只需要在計數()來指定的列名,它會跳過空:■

select avg(c),count(c) from (select generate_series(1,10) union select null) as a(c); 

從後忽略的東西,它只是返回值

列表

爲了更清楚:

select 
    avg(c), 
    count(c) count_column, 
    count(*) count_star, 
    sum(c), 
    array_agg(c) 
from (
    select generate_series(1,10) union select null order by 1 
) as a(c); 

     avg   | count_column | count_star | sum |   array_agg   
--------------------+--------------+------------+-----+----------------------------- 
5.5000000000000000 |   10 |   11 | 55 | {1,2,3,4,5,6,7,8,9,10,NULL} 
(1 row) 
+0

如何在此查詢中添加我從表中選擇的內容?我試圖從選擇null更改從表中選擇columnsName,而不是工作。 –

+0

select table count(column_name),avg(column_name)from table_name –

+0

but this「\t select count(column_name),avg(column_name)from table_name」in with union in select generate_series not?我不明白我的選擇表在哪裏輸入。 –

相關問題