如何通过SQLselect独特的logging

当我执行“SELECT * FROM table”时,我得到如下结果:

1 item1 data1 2 item1 data2 3 item2 data3 4 item3 data4 

正如你所看到的,来自第2列的重复logging(item1被重复)。 那么我怎么才能得到这样的结果:

 1 item1 data1 2 item2 data3 3 item3 data4 

只有一个logging是从副本,连同其余的唯一logging返回。

您可以使用SELECT DISTINCTGROUP BY来执行此操作。

 SELECT DISTINCT a, c FROM table_c 

要么

 SELECT a, b FROM table_c GROUP BY a, b 

如果你想使用像COUNT()SUM()这样的聚合函数, GROUP BY会更有帮助

 SELECT a, b, count(*) FROM table_c GROUP BY a, b SELECT a, b, sum(d) FROM table_c GROUP BY a, b 

如果你只需要删除重复,然后使用DISTINCT 。 应使用GROUP BY将聚合运算符应用于每个组

GROUP BY v DISTINCT

这取决于你想要返回每个独特的项目。 您的数据似乎表明在这种情况下SQL Server的最小数据值。

 SELECT item, min(data) FROM table GROUP BY item 

我发现如果因为任何原因我不能使用DISTINCT,那么GROUP BY将会起作用。

要获得结果中的所有列,您需要将以下内容放在一起:

 SELECT distinct a, Table.* FROM Table 

它将把第一列作为第一列,其余的将是所有列与您的定义相同的顺序。 这是,列a将重复。

从(selectEFF_ST,ROW_NUMBER()结束selectEff_st(PARTITION BY eff_st)XYZ – 从ABC.CODE_DIM

)其中XYZ = 1,由EFF_ST命令仅提取前5行