首页 > 解决方案 > 选择具有条件的唯一字段值

问题描述

我是 SQL 新手,我的问题是:

我有一张像

  card shop time      date
    1   1   0000    20171001
    2   2   0125    20171002
    2   1   0344    20171002
    3   3   0342    20171103
    4   5   1334    20171104
    4   4   1225    20171105
    5   4   1452    20171106

我需要通过列的最小值和(优先)选择两个字段( cardcard必须是唯一的)和)。shoptimedatedate

结果应如下所示:

  card shop time    date
    1   1   0000    20171001
    2   2   0125    20171002
    3   3   0342    20171103
    4   5   1334    20171104
    5   4   1452    20171106

先感谢您!

标签: sqlsql-server

解决方案


对于 SQL Server,您可以使用WITH TIES

select top 1 with ties *
from yourTable
order by row_number() over (partition by card order by date asc, time asc)

推荐阅读