2016-01-24 73 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?我不明白我的选择表在哪里输入。 –

相关问题