我想计算一列的内容,这没问题。 但是我也想计算另一个列内容,但是有一个where条件。
我想象它以便更好地解释:
我的表
Index1 Index2
1 0
1 2
2 2
2 2
2 2
现在我想计算Index1的内容,我知道数字1和2出现的频率。 但我想进一步计算Index2的内容,但只计算高于1的数字。
结果
Index1 amount
1 1
2 3
但是当我使用where
条件时,它用于两列。
我尝试了它,但它不起作用。
这个问题有一些舒适的解决方案吗?
答案 0 :(得分:4)
这称为条件聚合,在MySQL中它非常简单:
SELECT t.index1,
COUNT(*) as amount
SUM(t.index2>1) as amountWithWhere
FROM YourTable t
GROUP BY t.index1