首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一句select解决方法

2012-12-27 
求一句selectIDCOL2COL3COL41AAA2AAA2BBB3BBB3CCC5CCC我想查询到以下结果2AAA3BBB5CCC[最优解释]SELECT A.

求一句select
ID    COL2    COL3    COL4
1      A       A       A
2      A       A       A
2      B       B       B
3      B       B       B
3      C       C       C
5      C       C       C
我想查询到以下结果
2      A       A       A
3      B       B       B
5      C       C       C

[最优解释]
SELECT A.id,A.col1,A.col2,A.col3
FROM T1 A JOIN T1 B ON A.id>B.id AND A.col1=B.col1 AND A.col2=B.col2 AND A.col3=B.col3
[其他解释]

SELECT MAX(ID) ID,
COL2,
COL3,
COL4
FROM [TABLE]
GROUP BY COL2,COL3,COL4

[其他解释]

select * 
from tb a 
where a.id=(select max(id) from tb b where a.col1=b.col1 and a.col2=b.col2 and a.col3=b.col3)

[其他解释]


;WITH c1(ID,    COL2,    COL3,    COL4)
AS
(

SELECT 1,      'A',       'A',       'A' union all
SELECT 2,     'A',        'A',       'A' union all
SELECT 2,      'B',       'B',       'B' union all
SELECT 3,      'B',       'B',       'B' union all
SELECT 3,      'C',       'C',       'C' union all
SELECT 5,      'C',       'C',       'C'
)
--start query
SELECT
(SELECT MAX(ID) FROM c1 WHERE COL2 = d.COL2 AND COL3 = d.COL3 AND COL4 = d.COL4) id
,COL2
,COL3
,COL4
FROM c1 d
GROUP BY COL2, COL3, COL4

--result
id          COL2 COL3 COL4
----------- ---- ---- ----
2           A    A    A


3           B    B    B
5           C    C    C

(3 row(s) affected)


[其他解释]
收藏了,行列转换
[其他解释]

SELECT MAX(ID) ID,COL2,COL3,COL4
FROM [TABLE]
GROUP BY COL2,COL3,COL4

也样也可以实现你要要得啊,把你的问题在具体一点

[其他解释]
个个都写了,来个复杂点的
;WITH test(ID,    COL2,    COL3,    COL4)
 AS
 (
  
 SELECT 1,      'A',       'A',       'A' union all
 SELECT 2,     'A',        'A',       'A' union all
 SELECT 2,      'B',       'B',       'B' union all
 SELECT 3,      'B',       'B',       'B' union all
 SELECT 3,      'C',       'C',       'C' union all
 SELECT 5,      'C',       'C',       'C'
 )
 
 SELECT  *
 FROM    test a
 WHERE   EXISTS ( SELECT 1
                  FROM   ( SELECT    MAX(id) id ,
                                     COL2 ,
                                     COL3 ,
                                     COL4
                           FROM      test
                           GROUP BY  COL2 ,
                                     COL3 ,
                                     COL4
                         ) b


                  WHERE  a.id = b.id AND a.COL2=b.COL2 AND a.COL3=b.COL3 AND a.COL4=b.COL4)
 /*
 ID          COL2 COL3 COL4
 ----------- ---- ---- ----
 2           A    A    A
 3           B    B    B
 5           C    C    C
 
 (3 行受影响)
 
 */


[其他解释]
select max(id),col2,col3,col4 from tb group by col2,col3,col4
[其他解释]
select max(id),col2,col3,col4 from table group by col2,col3,col4 

[其他解释]
后来自己找到了,平均给分
[其他解释]
null

热点排行