在DateTime
中使用groupby
列时,我的结果有所不同。有人可以解释原因吗?
查询:
Select Name, Source, Description, CreatedDate
From testTable
Where Source like '%Validating err%'
And CreatedDate >='2016-12-01'
Group By Name , Source, Description, CreatedDate
结果: 15行
以上查询返回了15个结果。但是当我从CreatedDate
子句中删除groupby
列时,它只返回4个结果。
查询:
Select Name, Source, Description
From testTable
Where Source like '%Validating err%'
And CreatedDate >='2016-12-01'
Group By Name , Source, Description
结果: 4行
答案 0 :(得分:4)
我正在为@John的利益添加这个答案,这样他就可以直观地理解为什么他的两个结果集有不同的记录数。
想象一下名为shirts
的表格,其中只有两列size
和color
。以下是一些示例数据:
size | color
S | red
S | green
S | blue
M | red
M | green
M | blue
L | red
L | green
L | blue
换句话说,有三种尺寸的衬衫,每种尺码都有三种颜色。
现在,如果您执行以下查询:
SELECT size
FROM shirts
GROUP BY size
您将获得三条记录,仅包含三种尺寸。但是,如果您执行以下操作:
SELECT size, color
FROM shirts
GROUP BY size, color
然后你会得到 9个记录或组。这里发生的一切都是添加另一列创建了新的可能组组合,因此创建了更多组。同样的概念适用于您在两个查询中看到的内容。