如何通过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 DISTINCT
或GROUP 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行