我相信肯定有一个相对直接的方法来做到这一点,但目前它正在逃避我。假设我有一个SQL表是这样的:如何计算两列中具有相同值的行(SQL)?
+-----+-----+-----+-----+-----+
| A | B | C | D | E |
+=====+=====+=====+=====+=====+
| 1 | 2 | 3 | foo | bar | << 1,2
+-----+-----+-----+-----+-----+
| 1 | 3 | 3 | biz | bar | << 1,3
+-----+-----+-----+-----+-----+
| 1 | 2 | 4 | x | y | << 1,2
+-----+-----+-----+-----+-----+
| 1 | 2 | 5 | foo | bar | << 1,2
+-----+-----+-----+-----+-----+
| 4 | 2 | 3 | foo | bar | << 4,2
+-----+-----+-----+-----+-----+
| 1 | 3 | 3 | foo | bar | << 1,3
+-----+-----+-----+-----+-----+
现在,我想知道的列值A和B的每个组合有多少次出现,而不管其他列。所以,在这个例子中,我想要一个这样的输出:
+-----+-----+-----+
| A | B |count|
+=====+=====+=====+
| 1 | 2 | 3 |
+-----+-----+-----+
| 1 | 3 | 2 |
+-----+-----+-----+
| 4 | 2 | 1 |
+-----+-----+-----+
什么是SQL来确定?我觉得这不是一件非常不寻常的事情要做。
谢谢!
也是正确的,但排序由序不是一个好习惯IIRC。 – 2009-10-20 20:29:18
我以为我会第一个回答T_T。 – snahor 2009-10-20 20:30:40
@rexem我想你说这是因为可读性,我找不到其他原因。 – snahor 2009-10-20 20:33:05