![](/img/trans.png)
[英]Select a distinct row based on the max value of another column SQL Server 2008 R2
[英]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.