0

我正在尝试使用 sqlite3 从同一个表中获取具有不同 WHERE 条件的两个查询的结果。我可以让查询独立工作,但无法将它们组合起来。

查询一:

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 还很陌生,所以当我尝试搜索答案时,我什至不确定我是否将正确的查询放入我的搜索引擎。

4

2 回答 2

0

您可以使用 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;
于 2019-03-22T04:21:07.680 回答
0

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
于 2019-03-22T04:58:45.443 回答