Fyl*_*lix 0 sql sql-server group-by
对不起,我无法在SQLFiddle上证明这一点,因为当我问这个问题时它似乎已经失效了.
我有下表
Col1 Col2
==== ====
1 A
1 A
1 B
2 C
2 C
Run Code Online (Sandbox Code Playgroud)
如果我通过查询运行组
SELECT COL1,COL2
GROUPBY COL1,COL2
Run Code Online (Sandbox Code Playgroud)
我会的
Col1 Col2
==== ====
1 A
1 B
2 C
Run Code Online (Sandbox Code Playgroud)
我的问题是,当第2列中有多个不同的值时,如何编写查询来检测第1列值?本质上,该查询的返回应该给出"1",因为这是行在Col1中具有相同值的位置,而Col2在多个数据行的跨度上具有不同的值.
您可以使用group by子句min()和max():
select col1
from table t
group by col1
having min(col2) <> max(col2);
Run Code Online (Sandbox Code Playgroud)
尝试这个:
select Col1,count(distinct Col2) as [different Col2 value count]
from yourtable
GROUP BY COL1
having count(distinct Col2)>1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |