【发布时间】:2021-10-30 21:58:26
【问题描述】:
我有 2 个连接在一起的表(Orders 和 Order_item)
当我使用连接时,我得到重复的记录,然后我用DISTINCT 消除它们,但是当我想得到总和时,shipping_price DISTINCT 不起作用,因为它只是消除了相同的价格值而且我所有的价格都是一样的得到 1 而不是总和!
如果我不使用 DISTINCT ,我会按顺序获取每个项目的行
SELECT sum(DISTINCT shipping_price) FROM `product_order`
INNER JOIN `product_address`
ON `product_order`.`address_id` = `product_address`.`id`
INNER JOIN `product_item`
ON `product_order`.`id` = `product_item`.`order_id`
WHERE (`status`<>2)
AND (`company_id`=1968)
AND DATE(date)='2021-08-31'
ORDER BY `product_order`.`id` DESC
如何正确获取运费总和..
order_table 中的数据是
id shipping_price status
100
200
200
100
sum = 600 ,但是如何得到它,如果我没有 DISTINCT,我会得到超过一行的每个 order_items 加入订单的行数..
【问题讨论】:
-
请提供示例数据和预期输出。
-
sum(distinct)从来都不是正确的使用方法,除非您在 SQL 中演示不应该使用的东西。
标签: mysql