Объединение двух запросов с разными условиями ГДЕ - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь использовать sqlite3, чтобы получить результаты для двух запросов с разными условиями WHERE из одной и той же таблицы.Я могу заставить запросы работать независимо, но не смог объединить их.

Запрос 1:

SELECT COUNT(*) AS 'With Survivors', Day FROM crashes 
WHERE Fatalities < Aboard Group BY DIndex

Результаты:

    With Survivors  Day
0   231             Monday
1   262             Tuesday
2   243             Wednesday
3   271             Thursday
4   255             Friday
5   254             Saturday
6   216             Sunday

Запрос 2:

SELECT Count(*) AS 'Total Crashes', Day FROM crashes GROUP BY DIndex

Результаты:

    Total Crashes  Day
0   713            Monday
1   796            Tuesday
2   796            Wednesday
3   818            Thursday
4   797            Friday
5   741            Saturday
6   607            Sunday

Я хотел бы объединить их, чтобы получить следующее:

    With Survivors  Total Crashes   Day
0   231             713             Monday
1   262             796             Tuesday
2   243             796             Wednesday
3   271             818             Thursday
4   255             797             Friday
5   254             741             Saturday
6   216             607             Sunday

Я довольно плохо знаком сSQL, поэтому, хотя я пытался искать ответы, я даже не уверен, что помещаю правильный запрос в свою поисковую систему.

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

SQLite поддерживает выражение CASE, поэтому что-то вроде этого должно работать

SELECT 
   Sum( Case WHEN Fatalities < Aboard THEN 1 ELSE 0 end ) AS 'With Survivors',
   Count(*) AS 'Total Crashes', 
   Day 
FROM crashes 
GROUP BY DIndex
0 голосов
/ 22 марта 2019

Вы можете использовать UNION для объединения двух операторов SELECT

SELECT COUNT(*) AS 'With Survivors', Day FROM crashes 
WHERE Fatalities < Aboard Group BY DIndex
UNION
SELECT Count(*) AS 'Total Crashes', Day FROM crashes GROUP BY DIndex;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...