目前,我正在excel中执行此过程但是需要很长时间才能认为SQL可能提供更有效的替代方案。
表格,投影,是58k行,最初以无意义的方式排序。有18列,但只有两列有任何意义,occ_code和indcode。在excel中,我通过occ_code进行升序排列,然后通过indcode按升序排列该子集。下面给出了预期结果的一个例子。
indcode occ_code
000000 000000
110000 000000
111000 000000
000000 111011
110000 111011
120000 111011
000000 122011
至于SQL,可以使用以下代码完成。
Select Distinct Occ_code,indcode From dbo.projections
Order by occ_code asc, indcode asc
答案 0 :(得分:1)
如果您希望在结果中使用indcode,则还必须在您的选择中包含indcode。您编写的查询只会为每个不同的occ_code值提供一行。
答案 1 :(得分:1)
您的代码可以使用:
Select Distinct Occ_code,indcode From dbo.projections Order by occ_code asc, indcode asc
另一种方法是使用允许您使用聚合函数的组:
Select Occ_code, indcode From dbo.projections group by Occ_code, indcode Order by occ_code asc, indcode asc
在这里你可以用count(*)来找到那些没有重复的组合代码:
Select Occ_code, indcode, count(*) From dbo.projections group by Occ_code, indcode having count(*) = 1 Order by occ_code asc, indcode asc