SELECT
t1.bag_no,
t1.product_id,
t2.total_price
FROM myTable t1
INNER JOIN
(
SELECT bag_no, SUM(price) AS total_price
FROM myTable
GROUP BY bag_no
) t2
ON t1.bag_no = t2.bag_no
WHERE
t1.mainproduct = 'Y';
通过mysql 8+,支持解析函数,我们可以稍微简化一下上面的查询:
WITH cte AS (
SELECT
t1.bag_no,
t1.product_id,
SUM(price) OVER (PARTITION BY t1.bag_no) total_price,
t1.mainproduct
FROM myTable t1
)
SELECT bag_no, product_id, total_price
FROM cte
WHERE mainproduct = 'Y';
1条答案
按热度按时间sg3maiej1#
一种规范的方法是连接到一个子查询,该子查询查找和:
通过mysql 8+,支持解析函数,我们可以稍微简化一下上面的查询: