pip show <package name>
如何将该查询更改为一个查询?
答案 0 :(得分:2)
如果要对表达式求和并在三个不同的列([x]
,[y]
和[z]
中获得结果),请使用下一种方法。
SELECT
[LNMAJORTP],
[MainType],
SUM(CASE WHEN state LIKE '%firstCondition%' THEN x+y-z END) AS [x],
SUM(CASE WHEN state LIKE '%secondCondition%' THEN x+y-z END) AS [y],
SUM(CASE WHEN state LIKE '%thirdCondition%' THEN x+y-z END) AS [z]
FROM [my_table]
GROUP BY [LNMAJORTP], [MainType]
如果只想对一个表达式求和(在示例中为x+y-z
),则OR
子句中的简单WHERE
应该有效。表达式的结果将在一列中:
SELECT
[LNMAJORTP],
[MainType],
SUM(x+y-z) AS [x_y_z]
FROM [my_table]
WHERE state LIKE '%firstCondition%' OR state LIKE '%secondCondition%' OR state LIKE '%thirdCondition%'
GROUP BY [LNMAJORTP], [MainType]
答案 1 :(得分:0)
您可以如下合并三个查询。它将在不同的行中返回结果-
SELECT state,[LNMAJORTP],[MainType],
sum(x+y-z) [z]
FROM [my_table]
where state LIKE '%thirdCondition%'
OR state LIKE '%firstCondition%'
OR state LIKE '%secondCondition%'
GROUP BY state,[LNMAJORTP],[MainType]
答案 2 :(得分:0)
您可以在每次选择之间尝试UNION ALL。
SELECT
[LNMAJORTP], [MainType],
SUM(x + y - z) [x]
FROM
[my_table]
WHERE
state LIKE '%firstCondition%'
GROUP BY
[LNMAJORTP], [MainType]
UNION ALL
SELECT
[LNMAJORTP], [MainType],
SUM(x + y - z) [y]
FROM
[my_table]
WHERE
state LIKE '%secondCondition%'
GROUP BY
[LNMAJORTP], [MainType]
UNION ALL
SELECT
[LNMAJORTP], [MainType],
SUM(x + y - z) [z]
FROM
[my_table]
WHERE
state LIKE '%thirdCondition%'
GROUP BY
[LNMAJORTP], [MainType]