MySQL SUM() 带有 MIN() 的子查询

标签 mysql sum min

首先我要实现的目标是:

获取 etp_product.priceoption_price 的总和。

SELECT 
  etp_product.product_id,
  etp_product.price,
  (SELECT MIN(price) AS FIELD_2 FROM etp_product_option_value pov WHERE pov.product_id = etp_product.product_id) AS option_price
FROM
  etp_product
GROUP BY
  etp_product.product_id,
  etp_product.price

我试过这个:

SELECT 
  etp_product.product_id,
  etp_product.price,
  (SELECT MIN(price) AS FIELD_2 FROM etp_product_option_value pov WHERE pov.product_id = etp_product.product_id) AS option_price,
SUM(etp_product.price + option_price) AS Total
FROM
  etp_product
GROUP BY
  etp_product.product_id,
  etp_product.price

但出现此错误:

Unknown column 'option_price' in 'field list'

知道如何做到吗?

最佳答案

SELECT 
  p.product_id,
  p.price,
  IFNULL(MIN(pv.price), 0) as option_price,
  (p.price + IFNULL(MIN(pv.price), 0)) as total
FROM etp_product p
JOIN etp_product_option_value pv ON WHERE pv.product_id = p.product_id
GROUP BY
  p.product_id,
  p.price

关于MySQL SUM() 带有 MIN() 的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8184626/

相关文章:

pandas - 通过对 Pandas 中的某些列求和来组合多个数据框

c++ - OpenMP 最小值缩减和 std::min

java - 通过传递按特定时区格式化的 Java 日期,根据 UTC 日期字符串获取记录时出现问题

javascript - 在 javascript 变量中传递查询计数

python - 使用 Python 列表推导计算列表中的正整数元素

Python将数字列表与其他数字列表相加

javascript - 确定哪个数组更长 JavaScript

java - 将二维数组的最小列复制到一维数组java

php - 在数据库中插入数组

mysql 选择问题