我有一个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

我在哪里犯错误?

最佳答案

尽管您的表命名是多么随机和不直观,但似乎您希望使用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语句是一个聚合函数,因此它会导致行向下折叠为一行。按每行的唯一值分组将导致它按组聚合。

07-25 22:53