sqlserver数据库,查询语句问题

就是数据库有两列,一列日期,一列数量,我想查询最大日期,以及对应的数量,但用max后,后面必须group by 数量,查出来就是很多的行,压根不是我想要的

SQL 帆软用户p9k8MX4NIW 发布于 2024-3-15 13:49
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-3-15 13:52(编辑于 2024-3-15 13:56)

select sl,rq from table where rq=(select max(rq) from a)

  • 帆软用户p9k8MX4NIW 帆软用户p9k8MX4NIW(提问者) 最大日期和数量都要显示出来的,而且当最大日期有几条相同的数据时,再按照数量来,只取一条数据
    2024-03-15 13:55 
  • 用户k6280494 用户k6280494 回复 帆软用户p9k8MX4NIW(提问者) 把rq字段取出来就可以了啊
    2024-03-15 13:57 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-3-15 13:58(编辑于 2024-3-15 13:59)

SELECT * FROM (selec row_number() over(partition by '' ORDER BY 日期 desc,数量 DESC) [I],* FROM TABLE) T WHERE T.I=1

最佳回答
0
BrmiseLv6见习互助
发布于2024-3-15 14:03(编辑于 2024-3-15 15:08)

select top 1 日期,数量 from table order by 日期,数量 desc

最佳回答
0
JL98Lv6中级互助
发布于2024-3-15 14:17(编辑于 2024-3-15 14:20)

WITH RankedData AS (

    SELECT

        DateColumn,

        QuantityColumn,

        ROW_NUMBER() OVER (ORDER BY DateColumn DESC) AS rn

    FROM

        YourTable

)

SELECT

    DateColumn,

    QuantityColumn

FROM

    RankedData

WHERE

    rn = 1;

在这个例子中,我们使用了 ROW_NUMBER() 窗口函数,它根据日期列的降序排列为每一行分配一个行号。在 RankedData CTE 中,最大日期将被分配行号 1。然后,我们从 RankedData 中选择行号为 1 的行,这将返回最大日期及其对应的数量。

  • 4关注人数
  • 183浏览人数
  • 最后回答于:2024-3-15 15:08
    请选择关闭问题的原因
    确定 取消
    返回顶部