gpt4 book ai didi

sql-server - SQL Server 选择每组大小小于 X 的前 N ​​行

转载 作者:行者123 更新时间:2023-12-02 01:15:35 25 4
gpt4 key购买 nike

我有一张 table

编号 |文件名 |尺码 |日期 |顺序

我想为每个日期选择 n 个小于 100Mo(大小)的第一个文件例如,如果我有:

数据表:-

enter image description here

我只想保留 ID 1、2 和 11。

我已经写过了,但它只给了我第一个日期组。

SELECT
ID,
filename,
size,
date,
ordre
FROM tableName
WHERE ID IN ( SELECT ID FROM tableName
WHERE ID <
(SELECT TOP 1 ID
FROM tableName
WHERE size > 100
)
)

最佳答案

我对您的问题的理解:对于每个日期,我都想获取该日期第一行超过 100Mb 之前按 ID 排序的所有行。

如果我的理解是正确的,那么像这样的东西怎么样:

SELECT t.ID, t.size, t.date, t.ordre
FROM #tmp t
LEFT JOIN (
SELECT MIN(ID) AS MinID, [date]
FROM #tmp
WHERE size > 100
GROUP BY [date]
) m ON t.[date] = m.[date]
WHERE t.ID < m.MinID
OR m.MinID IS NULL -- for when there is no sizes > 100Mb for a date

关于sql-server - SQL Server 选择每组大小小于 X 的前 N ​​行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42808327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com