Использование GROUP BY для группировки двух столбцов - PullRequest
0 голосов
/ 25 августа 2011

У меня следующий запрос, и он создает таблицу.

SELECT c.name AS campaign
  , c.traffic_source
  , ic.keyword
  , COUNT(ic.keyword) AS keycount
  , SUM(ls.amount) AS total_amount
  , ls.buyer AS buyers
  , ic.create_date AS 'date'
FROM in_clicks AS ic 
INNER JOIN ads AS a ON (ic.ad_id = a.id)
INNER JOIN ad_groups AS ag ON (a.ad_group_id = ag.id)
INNER JOIN campaigns AS c ON (ag.campaign_id = c.id)
INNER JOIN leads AS l ON (ic.id = l.in_click_id)
INNER JOIN lead_status AS ls ON (l.id = ls.lead_id)
WHERE keyword IS NOT NULL AND ic.create_date BETWEEN '2011-08-21' AND '2011-08-22'
      AND ic.location NOT LIKE 'Littleton%' AND ls.discriminator = 'AUTO_POST'
GROUP BY ic.keyword
ORDER BY keycount DESC

Этот запрос производит (сокращенно):

campaign             count    
Auto                 10
Auto Branded         8
Auto California      7 
Auto Branded         6
Auto                 2
Auto                 2 
Auto California      1

То, что я хочу сделать, - это сгруппировать данные по количеству и названию кампании. Так это будет выглядеть так:

   campaign             count    
    Auto                 10
    Auto                 2
    Auto                 2 
    Auto Branded         8
    Auto Branded         6
    Auto California      7 
    Auto California      1

Как мне сгруппировать кампании и рассчитать их вместе?

Ответы [ 2 ]

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

Похоже, что вы на самом деле хотите заказать, а не группировать, поэтому просто добавьте campaign к порядку, т.е.

ORDER BY campaign, keycount DESC
2 голосов
/ 25 августа 2011

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

ORDER BY campaign ASC, keycount DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...