Получить сумму строкового поля в MySQL - PullRequest
1 голос
/ 28 июня 2019

У меня есть пример таблицы MySQL ниже:

date      |name    |invoice | quantity  | 
-------------------------------
2012-10-02 01:00|aaaa   |101 |  1
2012-10-02 01:30|aaaa   |102 |  2  
2012-10-02 01:45|aaaa   |102 |  3  

Я хочу GROUP BY дату и получить аналогичные результаты:

date      |  name    |invoice | freq_name | freq_quantity  | 
--------------------------------------------------
2012-10-02|  aaaa    |101     |1          | 1
2012-10-02|  aaaa    |102     |2          | 5

Я попытался выполнить эту агрегацию, как показано ниже:

SELECT 
date, 
name, 
invoice, 
SUM(quantity) AS freq_quantity, 
SUM(name) AS freq_name
FROM table
GROUP BY date, name, invoice

Поле freq_quantity является правильным, а поле freq_name - нет.

1 Ответ

3 голосов
/ 28 июня 2019

Вам не нужно sum имена, вам нужно count их:

SELECT 
date, 
name, 
invoice, 
SUM(quantity) AS freq_quantity, 
COUNT(*) AS freq_name -- Here!
FROM table
GROUP BY date, name, invoice
...