Преобразование названия дня в число-например, с понедельника по 1 - PullRequest
0 голосов
/ 27 декабря 2018

У меня нет таблицы отметок времени.Мне просто нужно конвертировать, используя строку имени,

SELECT day_of_week;

Вывод должен выглядеть как

day_of_week sum
Friday       5
Monday       1
Saturday     6
Sunday       7
Thursday     4
Tuesday      2
Wednesday    3

1 Ответ

0 голосов
/ 30 декабря 2018

Если бы это была отметка времени , тогда вы можете использовать isodow.См. документ

isodow

День недели: понедельник (1) до воскресенье (7)

SELECT day_of_week, EXTRACT(ISODOW FROM TIMESTAMP '2001-02-18 20:38:40') as sum FROM your_table;

Но у вас нет этой колонки.Таким образом, вы можете использовать CASE...WHEN, как показано ниже -

SELECT day_of_week,
       CASE WHEN day_of_week='Monday' THEN 1
            WHEN day_of_week='Tuesday' THEN 2
            WHEN day_of_week='Wednesday' THEN 3
            WHEN day_of_week='Thursday' THEN 4
            WHEN day_of_week='Friday' THEN 5
            WHEN day_of_week='Saturday' THEN 6
            ELSE 7
       END as sum
    FROM your_table;

См. Документ: https://www.postgresql.org/docs/8.4/functions-conditional.html

...