Мне нужна помощь в создании одного оператора SELECT как части оператора CREAT VIEW, который содержит несколько отдельных требований к фильтрации или группировке.
Я работаю над базой данных SQLite, чтобы отслеживать использование нашей местной кладовой с едой, где у нас есть два типа посетителей, «запланированные» или «входящие», приходящие в разные дни. Одна из центральных таблиц - это таблица «visit_log», которая отслеживает каждое посещение по дате, времени, типу посещения и людям в семье.
Я пытаюсь создать ВИД, который суммирует этот «visit_log» сгруппированы по visit_date, а также для количества записей и SUM размера домохозяйства, с отображением количества «Drop-Ins», количества «Scheduled» и суммы двух типов.
Вот «Visit_log»
CREATE TABLE "visit_log" ("visit_date" DATE, "visit_time" TIME, "client_relation" TEXT, "household_size" INTEGER)
Вот пример содержимого таблицы «visit_log». (Мы еще не начали записывать visit_time, поэтому эти значения пусты.)
"visit_date","visit_time","client_relation","household_size"
"6/9/20","","Scheduled","1"
"6/9/20","","Scheduled","1"
"6/9/20","","Drop-In","2"
"6/9/20","","Drop-In","3"
"6/9/20","","Drop-In","8"
"6/9/20","","Drop-In","5"
"6/16/2020","","Scheduled","1"
"6/16/2020","","Scheduled","1"
"6/16/2020","","Drop-In","4"
"6/16/2020","","Drop-In","5"
"6/16/2020","","Drop-In","2"
"6/16/2020","","Drop-In","2"
"6/16/2020","","Drop-In","5"
"6/16/2020","","Drop-In","1"
Я могу создать три отдельных VIEW, по одному для каждого типа и один для двух вместе. Но моя цель - объединить результаты этих трех ПРОСМОТРОВ.
Вот три ПРОСМОТРА. Первый - для двух типов клиентов вместе.
CREATE VIEW "visit_summary" AS SELECT
visit_date,
COUNT (*) AS households_total,
SUM (household_size) AS individuals_total
FROM
"visit_log"
GROUP By visit_date
Это дает
"visit_date","households_total","individuals_total"
"06/09/2020","12","44"
"06/16/2020","8","21"
"06/23/2020","7","20"
"06/30/2020","10","22"
"07/07/2020","7","18"
Далее идет ПРОСМОТР для Drop-Ins
CREATE VIEW "visit_summary_dropin" AS SELECT
visit_date,
COUNT (*) AS households_dropin,
SUM (household_size) AS individuals_dropin
FROM
"visit_log"
WHERE client_relation = "Drop-In"
GROUP By visit_date
Это дает
"visit_date","households_dropin","individuals_dropin"
"06/09/2020","10","42"
"06/16/2020","6","19"
"06/23/2020","4","13"
"06/30/2020","6","12"
"07/07/2020","6","16"
Наконец, это ПРОСМОТР для запланированного
CREATE VIEW "visit_summary_scheduled" AS SELECT
visit_date,
COUNT (*) AS households_schedualed,
SUM (household_size) AS individuals_scheduled
FROM
"visit_log"
WHERE client_relation = "Scheduled"
GROUP By visit_date
Это дает
"visit_date","households_schedualed","individuals_scheduled"
"06/09/2020","2","2"
"06/16/2020","2","2"
"06/23/2020","3","7"
"06/30/2020","4","10"
"07/07/2020","1","2"
То, что я надеюсь создать, - это единственный ПРОСМОТР, который дает
"visit_date","households_total","individuals_total","households_dropin","individuals_dropin","households_schedualed","individuals_scheduled"
"06/09/2020","12","44","10","42","2","2"
и т. Д.
Итак, мой главный вопрос, наконец, заключается в том, как создать один VIEW, содержащий что-то вроде нескольких классов WHERE для определения разных столбцов?