如果有count子句,SQL Distinct无法工作

时间:2017-05-26 08:36:38

标签: mysql sql

我的SQL查询遇到问题(选择不同的工作)。

我的sql是:

select distinct
count(T2.Column1)
from Table1 t2
where T2.Column1='2017-05-210'

实际的第1列数据只有3个数据, 但输出 12

Nb: - Column1数据与Column2具有1到多种情况,

以下是实际数据:

Column 1    Column 2
   1          A
   1          B
   1          C
   1          D
   2          A
   2          B
   2          C
   2          D
   3          A
   3          B
   3          C
   3          D

任何人都可以帮助我吗? 非常感谢你的关注。

谢谢!

2 个答案:

答案 0 :(得分:0)

您想要计算不同的值,count(distinct )

也是如此
select count(distinct T2.Column1)
from Table1 t2
where T2.Column1='2017-05-210'

(但是,您的示例数据和查询的数据/列不匹配。)

答案 1 :(得分:0)

您的示例数据,结果和查询不匹配。

但是,您的查询的作用是:

  1. 查找column1 = '2017-05-210'的所有记录。
  2. 计算column1不为空的所有记录(对于所有这些记录都是如此,column1 = '2017-05-210')。
  3. 这导致一个数字(一行,一列)。但是你还要用DISTINCT说你要从结果行中删除任何重复项。只有一行,没有重复,所以这里的功能是多余的。
  4. 所以想想你真正想要的东西。您使用COUNT(DISTINCT column)计算不同的值(即计算忽略重复项),但COUNT(DISTINCT column1)当然会返回1,因为您只查找一个值{{1} }(如果没有匹配此值的记录,则为零)。