mysql - 在数据库中使用 SQL 查询
问题描述
我需要你的帮助来用 SQL 编写一个数据库查询。想象一下这种情况:
有 3 列(ID、材料、数量)的数据库
ID | 材料 | 数量 |
---|---|---|
1 | X | 30 |
2 | X | 15 |
3 | 是 | 20 |
我想从数据库中获取材料 X 的最后数量条目。我的想法是执行以下操作:
SELECT quantity
FROM table
WHERE name = 'X'
AND ID = ( SELECT max( ID ) FROM table)
不幸的是,我无法获得值 15。它仅在我仅搜索最后一行时才有效(在本例中为材料 Y)。
解决方案
;WITH cte AS
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY Material ORDER BY ID DESC) AS rn
FROM table
)
SELECT material,quantity
FROM cte
WHERE rn = 1
通过这种方式,您可以看到“X”、“Y”等的结果。
推荐阅读
- python - 给定否时,在圆内找到正多边形的面积所需的方程式是什么?边和半径?
- c# - C# appDomain 因“CodeAccessPermission”原因而无法工作,为什么?
- python - “.yml”文件“前缀”问题(How to Implement Yolo V3 Object Detection on Windows with GPU)
- reactjs - 仅导入特定于每个路由上每个组件的样式
- list - 比较序言中的列表
- javascript - TypeScript:键入以包含任何值,但预定义集中的值除外
- mongodb - 正在寻找 DynamoDB/MongoDB+Redis 组合?
- angular - 如何在 chage 上获取 selectedIndex 值并附加到角度 7 中的其他文本框值中
- django - 如何避免 HTML 中的 Django 标签转义
- java - 如何在 Java 中对给定范围的 SortedMap 值进行分组?