2013-04-05 64 views
0

我的要求是如何在select和group中只写1列来查询多列。在这个select的多个列中,我使用的第一列是不同的。但是我想只列出第三列中的一列。请告诉我任何一个。SQL Server 2008:如何在select和group中仅写1列来查询多列的查询

我得到的结果是这样的:

D2A08528-FFBA-492D-AF51-50D6CC10C5A4 [email protected] E0F127ED-DA67-45F4-A2C5-C0E89CB5E1B4 5 
6110E173-419B-4C1B-8524-6D9EF39D27E7 [email protected] E0F127ED-DA67-45F4-A2C5-C0E89CB5E1B4 5 
52D7DA02-9415-447F-9DF4-8D327E599347 [email protected] E0F127ED-DA67-45F4-A2C5-C0E89CB5E1B4 5 
9FCC3C51-3BB7-4A18-A1E5-9B4C6B657AB2 [email protected] E0F127ED-DA67-45F4-A2C5-C0E89CB5E1B4 5 
EB79FC72-5144-445E-8EE7-D3A195902210 [email protected] E0F127ED-DA67-45F4-A2C5-C0E89CB5E1B4 5 
C04EA2EF-8311-4194-B67D-D88C1CDA912D [email protected] E0F127ED-DA67-45F4-A2C5-C0E89CB5E1B4 5 
40D24F2E-7D3A-48A8-ADCF-208E2F463C81 [email protected] C83583D4-C08A-4AFF-93FB-5FB91654D320 2 
DE42D201-7513-43BD-98A1-4F5B52C799A3 [email protected] 7C6FA760-0B13-4629-9383-C7D943A1DE8C 1 

但我需要的结果是这样的:

D2A08528-FFBA-492D-AF51-50D6CC10C5A4 [email protected] E0F127ED-DA67-45F4-A2C5C0E89CB5E1B4 5 

40D24F2E-7D3A-48A8-ADCF-208E2F463C81 [email protected] C83583D4-C08A-4AFF-93FB-5FB91654D320 2 

DE42D201-7513-43BD-98A1-4F5B52C799A3 [email protected] 7C6FA760-0B13-4629-9383-C7D943A1DE8C 1 

回答

3

请尝试:

SELECT * FROM(
    SELECT 
     ROW_NUMBER() OVER (PARTITION BY 3rdColumn ORDER BY 3rdColumn) RNum, 
     * 
    FROM YourTable 
)x WHERE RNum=1 
1

你需要应该是什么在@ techdo的答案。这里只是使用@techdo查询的SQL FIDDLE DEMO

+0

如果您认为答案有帮助,请选择@ techno的答复作为答案。 – ljh 2013-04-05 07:20:45

+0

通过添加SQL小提琴解决方案很好的工作。 – TechDo 2013-04-05 07:22:36

+0

@techdo,欢迎您,不要让一个好的答案被跳过。 – ljh 2013-04-05 07:24:29