将单独的 Where 子句应用于单独的列 (SQL)
Applying Separate Where Clauses to Separate Columns (SQL)
是否可以按照这些思路以简单的方式做一些事情。我知道这没有意义,但这是我想尝试做的事情:
SELECT
SUM(T.SALES) WHERE T.YEAR = '2018'
, SUM(T.SALES) WHERE T.YEAR = '2019'
FROM TABLE1 AS T
我想到的比较长的方法是:
SELECT
(SELECT SUM(T.SALES) FROM TABLE1 AS T WHERE T.YEAR = '2018') AS "2018 TOTAL SALES"
,(SELECT SUM(T.SALES) FROM TABLE1 AS T WHERE T.YEAR = '2019') AS "2019 TOTAL SALES"
但这并没有真正的意义。它在 MySQL 中执行我希望它执行的操作,但它不是标准化方法。任何对此的帮助都会很棒。
我基本上想要返回 2 列(总销售额),但每一列都有自己单独的过滤器(按年份过滤,一个按 2018 年过滤,另一个按 2019 年过滤),如果这可以在简单的方法。
是的,你可以用条件数:
SELECT
, SUM(case when T.YEAR = '2018' then T.SALES end) "2018 TOTAL SALES"
, SUM(case when T.YEAR = '2019' then T.SALES end) "2019 TOTAL SALES"
FROM TABLE1 AS T
是否可以按照这些思路以简单的方式做一些事情。我知道这没有意义,但这是我想尝试做的事情:
SELECT
SUM(T.SALES) WHERE T.YEAR = '2018'
, SUM(T.SALES) WHERE T.YEAR = '2019'
FROM TABLE1 AS T
我想到的比较长的方法是:
SELECT
(SELECT SUM(T.SALES) FROM TABLE1 AS T WHERE T.YEAR = '2018') AS "2018 TOTAL SALES"
,(SELECT SUM(T.SALES) FROM TABLE1 AS T WHERE T.YEAR = '2019') AS "2019 TOTAL SALES"
但这并没有真正的意义。它在 MySQL 中执行我希望它执行的操作,但它不是标准化方法。任何对此的帮助都会很棒。
我基本上想要返回 2 列(总销售额),但每一列都有自己单独的过滤器(按年份过滤,一个按 2018 年过滤,另一个按 2019 年过滤),如果这可以在简单的方法。
是的,你可以用条件数:
SELECT
, SUM(case when T.YEAR = '2018' then T.SALES end) "2018 TOTAL SALES"
, SUM(case when T.YEAR = '2019' then T.SALES end) "2019 TOTAL SALES"
FROM TABLE1 AS T