mysql - 获取一个字段的最新值,同时对其他字段进行分组

标签 mysql database

我正在尝试将大批量事务“汇总”为更易于管理、更明确的数据行。例如:

ID        item        description     qty      unitPrice    extPrice
1234      foo         foo bar          6       10            60
2345      foo         foo bar          2       10            20
3456      foo         foo bar          2       15            30

将被分组到另一个表中:

ID        item        description     qty      extPrice     lastPricePaid
1         foo         foo bar          10      110          15

我目前遇到的问题是如何确定 lastPricePaid 值。这是当前的查询不包含,其中包括:

SELECT id, groupId, datePurchase, vendor, venItem, item, itemDesc, uom, SUM(qtyPurchase) AS `qtyPurchase`, SUM(extPrice) AS `totalPrice`, MAX(unitPrice) AS `maxPrice`, unitPrice, code, stripped_venitem, MAX(datePurchase) as `maxDate`, SUM(extPrice) as `extPrice`, PONum
FROM transactions t
WHERE (((qtyPurchase)!=0))
GROUP BY groupId, vendor, venItem, item, itemDesc, uom
HAVING datePurchase > (MAX(datePurchase) - DATE_SUB(MAX(datePurchase), INTERVAL 1 YEAR));

真正的技巧是,由于我要使用 Solr,我需要将其放入单个查询中,而不需要依赖事后的处理技巧。

感谢您的见解!

最佳答案

我无法测试,但是,你尝试过按 ID 订购吗?这样您应该获得与 id 更大的单价相关的单价。

SELECT id, groupId, datePurchase, vendor, venItem, item, itemDesc, uom, SUM(qtyPurchase) AS `qtyPurchase`, SUM(extPrice) AS `totalPrice`, MAX(unitPrice) AS `maxPrice`, unitPrice, code, stripped_venitem, MAX(datePurchase) as `maxDate`, SUM(extPrice) as `extPrice`, PONum, unitPrice as lastPricePaid
FROM transactions t
WHERE (((qtyPurchase)!=0))
GROUP BY groupId, vendor, venItem, item, itemDesc, uom
HAVING datePurchase > (MAX(datePurchase) - DATE_SUB(MAX(datePurchase), INTERVAL 1 YEAR)
order by id desc

关于mysql - 获取一个字段的最新值,同时对其他字段进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33417725/

相关文章:

mysql - "service mysql start"是启动mysql服务器还是客户端?

java - Hibernate 非主键列的级联更新

java - 用于车辆位置的实时网站和Java中的数据库R/W

mysql - 2 种 MYSQL 安装 - 一种允许在 View 定义中使用子查询,另一种则不允许

mysql - Toad for MySQL 和版本控制的问题

mysql - Laravel 查询生成器组错误 : Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column

ruby-on-rails - RoR 使用数字作为数据库列名会产生错误

database - 幻想名字数据库

.net - 如何使用 .NET 连接到 Informix?

php - 如何删除特殊字符,如 : & ) (\/from the string using php?