sql - SQL 分析函数第一个值超过最大值(另一个属性)
问题描述
我有一张桌子month_totals
,看起来像:
Name DateFrom Total
a 2017-01-01 34
b 2017-01-01 54
a 2017-02-01 22
b 2017-02-01 12
a 2017-03-01 34
b 2017-03-01 54
如何选择最新Totals
的 per Name
where DateFrom < '2017-03-01'
(可能使用分析函数)
以下语句未按预期工作
SELECT name,
First_value(total)
OVER (
ORDER BY Max(datefrom) DESC)
FROM month_totals
WHERE datefrom < '2017-03-01'
GROUP BY NAME
期望的结果应该是
Name Total
a 22
b 12
解决方案
您可以在下面尝试使用最小聚合
SELECT name,min(total)
FROM month_totals
GROUP BY NAME
或者你可以使用 row_number()
select * from
(
SELECT name,
row_number() over(partition by name order by total)rn
FROM month_totals
WHERE datefrom < '2017-03-01'
)A where rn=1
推荐阅读
- python - AttributeError: 'NoneType' 对象在通过 Python 使用 Selenium 使用无头 Chrome 截屏时没有属性 'encode' 错误
- java - 在另一个助焊剂结束后执行平行助焊剂
- python - 如何打开 Python 3.8 IDLE?
- python - 为什么我的 csv 文件用“\t”而不是逗号(“,”)分隔?
- machine-learning - 字符串索引器,CountVectorizer Pyspark 单行
- node.js - sudo npm install -g cordova ionic - 不工作,因为 EEXIST
- c# - User.Identity.GetUserId() 在 .net Core 中总是返回 null
- azure - 部署到 Azure 应用服务时站点不显示
- python - 弹跳球游戏 tkinter 帆布
- python-3.x - 是否可以在 Python3 中使变量成为对类属性的引用?