如何为每个 Distinct 代码值 select 各种项目

How to select various items for each Distinct code value

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

table 投影是 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

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

您的代码将起作用:

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