SQL:选择第一列的第一次出现,其不同值为second

SQL:选择第一列的第一次出现,其不同值为second,sql,Sql,我有一个包含以下值的表,我想得到acc_num的不同值,以及最顶层的ref_id。你能告诉我如何做到这一点吗 ref_id acc_ num 1234 H0456 1235 H0456 1236 H0987 1237 H0987 1238 H0741 所以我的结果应该是 ref_id acc_num 1234 H0456 1236 H0987 1238 H0741 使用最小聚合 selct cust_name,acc_num,

我有一个包含以下值的表,我想得到acc_num的不同值,以及最顶层的ref_id。你能告诉我如何做到这一点吗

ref_id  acc_ num
 1234    H0456
 1235    H0456
 1236    H0987
 1237    H0987
 1238    H0741
所以我的结果应该是

ref_id acc_num
 1234   H0456
 1236   H0987
 1238   H0741
使用最小聚合

   selct cust_name,acc_num,ref_id from
   ( select acc_num,min(ref_id) as ref_id
    from tablename
    group by acc_num)a inner join customertable c on c.acc_num=a.acc_num

提示:
groupby
&
MIN()
。您正在运行哪个SQL引擎?Yogesh的想法是正确的:从表GROUP BY(acc num)中选择MIN(参考id);在你的问题中,你说你想得到最高的参考id,但在你的样本结果中,你已经显示了每个acc numAlso的最低参考id,你说的最高是什么意思?它找到的第一条记录是什么?还是最低的数字?你可能也需要订货。工作做得很好fa06。。非常感谢你。我能问你件事吗。。我想使用联接将结果与另一个表联接,但出现错误。您能在问题中发布该表信息吗?然后我可以帮助您我正在使用acc_num从另一个表中获取cus_名称,但它显示“c.cus_名称在选择列表中无效,因为它未包含在聚合函数或分组依据中clause@EricDavid您需要将其添加到组中BY@EricDavid,我已经修改了我的答案,您可以检查这如何帮助OP“选择第一个具有不同值的列的首次出现”?
SELECT *
    FROM `table`
group by acc_num order by ref_id