sql - 带有分组依据和排序依据的mysql查询

标签 sql mysql rows

我有一个这样的表:

.--------------------------------.
| Name  | XX | Date              |
.--------------------------------.
| N1    | 5  | 2009-05-01        |
| N1    | 10 | 2008-01-08        |
| N2    | 8  | 2009-02-02        |
.________________________________.

我的结果应该是这样的:

.------------.
| Name  | XX |
.------------.
| N1    | 5  |
| N2    | 8  |
.____________.

我只想要按名称分组的行,但只需要最新的行。我不想要此示例中 XX=10 的行,因为日期 2009-05-01 > 2008-01-08。

我不知道如何按日期排序和分组:(

最佳答案

你想要分组做什么?

select Name, XX
  from yourTable t1
 where Date = (select MAX(Date)
                 from yourTable t2
                where t1.Name = t2.Name)

如果您需要对最后一天的 XX 求和,则:

select Name, SUM(XX)
  from yourTable t1
 where Date = (select MAX(Date)
                 from yourTable t2
                where t1.Name = t2.Name)
 group by Name

关于sql - 带有分组依据和排序依据的mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1236003/

相关文章:

c# - 从 ASP.Net C# 应用程序性能问题运行 SQL 脚本

mysql - mysql配置文件my.cnf不包含变量open_file_limit

高频计费系统的MySQL设计

mysql - Golang Gorm 错误迁移结构

mysql - 导入和计数后行数不同

python - 使用 Python 选择一列中具有特定范围值的行

sql - 将行取消嵌套到多个 json 对象中

sql - 嵌套查询

重置后的 SQL 运行总计

HTML 表格 : how to make all rows equal height?