Задать вопрос
@Geterozi

Почему не работает группировка SQL?

SELECT t1.billing_country as country, t1.total_invoice as total_invoice, c.total_customer
FROM (
    SELECT
    	billing_country,
    	EXTRACT(year from CAST(invoice_date as date)) as year,
    	COUNT(invoice_id) as total_invoice 
    FROM
    	invoice
    WHERE EXTRACT(month from CAST(invoice_date as date)) IN (6,7,8)
    group by year, billing_country
   order by total_invoice desc
  ) as t1
  LEFT JOIN 
(
SELECT country,
       count(customer_id) as total_customer
FROM 
       client
GROUP BY country     
) as c
ON t1.billing_country = c.country
GROUP BY t1.billing_country, t1.total_invoice, c.total_customer
ORDER BY t1.total_invoice desc, t1.billing_country
  • Вопрос задан
  • 1770 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Инженер по тестированию плюс
    9 месяцев
    Далее
  • Progtips
    Программирование баз данных на SQLite
    2 месяца
    Далее
  • Quality Academy
    Инженер по ручному тестированию. Штучная работа
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Вероятно, не кастует год для группировки.
Вместо:
group by year ...
нужно:
group by EXTRACT(year from CAST(invoice_date as date)) ...

Если функция extract не пригодна для группировки, то сделайте еще одну обертку подзапроса, чтобы на верхнем уровне год оказался уже вычисленным полем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы