选择带有计数和无计数的语句

时间:2016-11-16 18:17:47

标签: php mysql

我有一个SQL语句来选择数据:

SELECT DISTINCT count(table.data) as cntd, table.datatwo
FROM table LEFT JOIN tabletwo ON table.id=tabletwo.tableid
WHERE tabletwo.dated='2016-11-17' AND table.datafive='1'

如果我按照上面的方式保留 - 它返回如下数据:

cntd datatwo
4    92

但是正确的数据应该是:

cntd datatwo
2   92
2   93

因为有两种不同的datatwo。当我选择没有cont的语句时 - 它显示datatwo

datatwo
92
93

我在哪里犯了错误?

1 个答案:

答案 0 :(得分:5)

尽管你的表命名有多随机和不直观,但你想要的是使用GROUP BY语句:

SELECT
    DISTINCT count(table.data) as cntd,
    table.datatwo
FROM table
LEFT JOIN tabletwo ON table.id=tabletwo.tableid
WHERE tabletwo.dated='2016-11-17'
  AND table.datafive='1'
GROUP BY tabletwo.tableid

COUNT语句是聚合函数,因此它会将行折叠为一行。按每行的唯一值进行分组将使其按组聚合。