#sql #sql-order-by #amazon-redshift
#sql #sql-порядок по #amazon-redshift
Вопрос:
Я пытаюсь отсортировать некоторые данные в Redshift по неделям.
select CONCAT(CONCAT('Week', ' '),
EXTRACT(WEEK FROM sale_date::date '1 day'::interval)) as date,count(*) as total
from sales
where sale_date between ('2019-03-22' - 30) and '2019-03-22'
group by EXTRACT(WEEK FROM sale_date::date '1 day'::interval)
order by 1 asc;
Приведенный выше запрос работает нормально, однако результат выглядит следующим образом:
Week 10, 10
Week 11, 20
Week 12, 3
Week 7, 12
Week 8, 3
Week 9, 5
Как я мог бы изменить приведенный выше запрос таким образом, чтобы результат был таким, как показано ниже:
Week 7, 12
Week 8, 3
Week 9, 5
Week 10, 10
Week 11, 20
Week 12, 3
Ответ №1:
вам нужно преобразовать извлеченное значение недели в оператор numeric type
for order by
. Итак, преобразуйте
order by 1 asc
Для
order by cast(EXTRACT(WEEK FROM sale_date::date '1 day'::interval) as integer)