Как мне использовать SUM в MySQL? - PullRequest
2 голосов
/ 01 августа 2011

Мне нужно сложить группу для моего запроса. Что-то вроде:

SELECT customer_id, SUM(weekly) FROM earnings GROUP BY customer_id

Выше работает, но мне нужно что-то более сложное, и мой запрос выглядит так:

SELECT
    (SELECT SUM(weekly) FROM earnings) + 
    (SELECT SUM(day_earnings) FROM earnings) / .75

Выше приведены суммы всех заработков, еженедельных и ежедневных, но мне нужно сгруппировать их по customer_id like в первом примере. Как мне этого добиться?

Ответы [ 4 ]

3 голосов
/ 01 августа 2011

В соответствии с порядком операций в вашей попытке выше, только SUM(day_earnings) делится на .75. Если это должны быть суммы за неделю и за день, то поставьте круглые скобки вокруг них как (SUM(weekly) + SUM(day_earnings)) / 0.75 AS earnings.

SELECT 
  customer_id,
  customer_name,
  SUM(weekly) + SUM(day_earnings) / 0.75 AS earnings
FROM earnings JOIN customers ON earnings.customer_id = customers.customer_id
GROUP BY customer_id, customer_name
0 голосов
/ 01 августа 2011

Разве вы не можете просто сделать:

SELECT customer_id, (SUM(weekly) + SUM(day_earnings) / .75) AS earnSum FROM earnings GROUP BY customer_id
0 голосов
/ 01 августа 2011
SELECT 
  customer_id, 
  SUM(weekly) weekly, 
  SUM(day_earnings) daily, 
  ((SUM(weekly) + SUM(day_earnings)) / .75) calc
FROM 
  earnings 
GROUP BY 
  customer_id 
0 голосов
/ 01 августа 2011

Это работает?

SELECT customer_id, SUM(weekly + (day_earnings / .75)) 
FROM earnings 
GROUP BY customer_id
...