代码之家  ›  专栏  ›  技术社区  ›  Calflamesfann

如何为每个不同的代码值选择不同的项目

  •  0
  • Calflamesfann  · 技术社区  · 7 年前

    目前,我正在excel中执行此过程,但这需要很长时间,我认为SQL可能会提供更有效的替代方法。

    投影表是58k行,最初是以一种无意义的方式排序的。共有18列,但只有两列具有任何意义,即occ\U代码和indcode。在excel中,我按occ\U代码升序排列,然后按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
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   gil.fernandes    7 年前

    您的代码将起作用:

    Select Distinct Occ_code,indcode From dbo.projections Order by occ_code asc, indcode asc

    另一种选择是使用group by,它允许您使用聚合函数:

    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

        2
  •  1
  •   user6921149 user6921149    7 年前

    如果希望在结果中包含indcode,还必须在select中包含indcode。您编写的查询只会为每个不同的occ\U代码值提供一行。