2015-04-13 2 views
0

По запросу:Сумма для конкретных условий в MySQL

select date, query_type, light_mapped_count, heavy_mapped_count, lightandheavy_mapped_count, total_queries 
from search_converted_play 

Я получаю:

| date  | query_type  | light_mapped_count | heavy_mapped_count | 
| 2015-01-01 | browse   |    162 |    592 | 
| 2015-01-01 | browse_scroll |     11 |     48 | 
| 2015-01-02 | browse   |    640 |    3001 |      253 | 
| 2015-01-02 | browse_scroll |     75 |    570 |       49 | 

Теперь я хочу сумму для всех типов запросов для light_mapped_count и heavy_mapped_count для конкретной даты , поэтому выход должен быть:

| date  | query_type  | light_mapped_count | heavy_mapped_count | 
| 2015-01-01 | browse   |    162 |    592 | 
| 2015-01-01 | browse_scroll |     11 |     48 | 
| 2015-01-01 | all   |    173 |    640 | 
| 2015-01-02 | browse   |    640 |    3001 |      253 | 
| 2015-01-02 | browse_scroll |     75 |    570 |       49 | 
| 2015-01-02 | all   |    715 |    3571 | 

Любая идея о том, как это сделать?

+0

возможно дубликат [MySQL: Получить общей сложности в последней строке MySql результата] (http://stackoverflow.com/questions/5232306/mysql-get-total- in-last-row-of-mysql-result) –

ответ

2

Попробуйте использовать UNION, как показано ниже:

SELECT date, query_type, light_mapped_count, heavy_mapped_count 
FROM search_converted_play 
UNION 
SELECT date, 'all', SUM(light_mapped_count), SUM(heavy_mapped_count) 
FROM search_converted_play 
GROUP BY date 
ORDER BY date 
+0

Пробовал это, но для каждой даты я теперь получаю 2 типа запросов. например. для 2015-01-01 Я получаю 2 'просмотр' и т. д. –

+0

Я только что использовал ваш запрос выше и доверял, что вы действительно получали одну строку. – SMA