【发布时间】:2019-06-27 15:05:00
【问题描述】:
我正在尝试从 table1 中获取与 table2 中的类别匹配的记录计数。
例如,表格可能如下所示:
ID A
1 value1
2 value2
3 value3
4 value2
ID A Category
1 value1 Category1
2 value2 Category1
3 value3 Category2
现在假设我要统计 Table1 中属于 Category1 的记录
我想出的查询:
SELECT count(table1.A) as count, table2.Category from table1, table2
WHERE table2.Category = 'Category1' AND table1.A = table2.A
GROUP BY table2.Category
ORDER BY count DESC
预期结果:
Category1 3
我得到的结果:
Category1 6
计数是 A 在 table1 中出现的次数乘以 A 在 table2 中出现的次数。 我也尝试了 LEFT JOIN,但这给了我相同的结果。
我怎样才能防止这种情况并只获得 table1 的计数?
【问题讨论】:
-
按类别分组并从列列表中删除
A。ORDER BY对于一条记录也没有意义。 -
谢谢。在我的代码中,我将两者分组并尝试删除 A。结果仍然相同。排序是为了最好地反映我的代码(处理数百万条记录;))
-
我的意思是只按类别分组,而不是两者。
-
我试过了,结果还是一样
-
更新您的问题添加预期结果