2016-12-05 136 views

回答

1

你应该使用GROUP BY对ColumnA,并选择WH这些记录ich ColumnB不是NULL。下面的脚本完成了你的请求,我已经包含了一些解释

CREATE TABLE Test(ColumnA INT, ColumnB INT) 

INSERT INTO Test(ColumnA, ColumnB) VALUES (1, 56), 
              (1, null), 
              (1, 78), 
              (2, null), 
              (3, 54) 

SELECT ColumnA, COUNT(*) 
FROM TEST WHERE ColumnB IS NOT NULL 
GROUP BY ColumnA 

DROP TABLE Test 

感兴趣的部分是SELECT指令。脚本的其余部分仅适用于简单表格的创建和填充,就像您正在谈论的那个表格一样。

请注意SELECT是在ColumnA上进行的,并且该列也用于GROUP BY子句中。这意味着我们想要从ColumnA中提取单个值,以便选择其他列,并以某种方式进行汇总。

该特定聚合(即ColumnB的值的出现)由聚合函数COUNT()进行,该聚合函数告知提取与分组列相匹配的那些记录的数量。在我们的案例中,COUNT()计算ColumnA每个值的记录数量。 但是,既然你想排除那些对ColumnB有NULL值的记录,我们只需通过WHERE子句将它们从选择中排除出去:正如你所看到的,我要求那些ColumnB不为NULL的记录。

通过这种方式,并使用你张贴的所有样本数据中,我们将获得正是你所期待的:

1 2 
3 1 
相关问题