繁体   English   中英

SQL - 根据最大值拉不同的行

[英]SQL - Pull distinct row based on max value

我正在尝试为每个销售人员提取最近的销售额。 销售人员多天进行销售,我只想要最近的一个。

我的尝试如下:

SELECT salesperson, amount
FROM table
WHERE date = (SELECT MAX(date) FROM table);

使用相关子查询:

SELECT t.salesperson, t.amount
FROM table t
WHERE t.date = (SELECT MAX(t1.date) 
                FROM table t1 
                WHERE t1.salesperson = t.salesperson -- for each salesperson
               );

如果您使用的是 PostgreSQL,则可以利用DISTINCT ON

SELECT DISTINCT ON (salesperson) salesperson, amount
FROM table t
ORDER BY salesperson, date DESC

这将为每个销售人员返回一行。 ORDER BY 子句表示为该销售人员返回日期最长的那个。

不幸的是,其他数据库不支持 DISTINCT ON。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM