SQL Basic语法

时间:2017-02-10 01:45:43

标签: sql

我有以下问题:

Problem

如果查询没有在select中询问B,会发生什么?我认为这会产生错误,因为聚合是根据select子句中的值计算的。

我有以下关系架构和查询:

假设R(A,B)是与单个元组的关系(NULL,NULL)。

SELECT  A,  COUNT(B)
FROM    R
GROUP   BY  A; 

SELECT  A,  COUNT(*)
FROM    R
GROUP   BY  A; 

SELECT  A,  SUM(B)
FROM    R
GROUP   BY  A;

第一个查询返回NULL和0.我不确定第二个查询返回的内容。聚合COUNT(*)计算一个表中的元组数;但是,我不知道它对一个团队做了什么。第三个返回NULL,NULL

1 个答案:

答案 0 :(得分:2)

评论太长了。

关于SELECTGROUP BY的唯一规则是SELECT 中的未聚合列必须在GROUP BY(非常具体)例外)。

您可以在GROUP BY中拥有从未出现在SELECT中的列。那样就好。它不会影响组的定义,但多个行似乎在GROUP BY列中具有相同的值。

相关问题