【发布时间】:2018-10-01 21:17:22
【问题描述】:
我在 StackOverflow 上研究了五个不同的线程,我觉得我已经接近了,但仍然没有雪茄。我的原始表格有几个部分,每个部分有几行,每行有几个位置。我希望能够查询一个结果,该结果列出了部分、行、位置、有多少位置高于该行(位置编号较低)以及有多少位置低于该行(位置编号更大)。
这是我所拥有的:
SELECT section,
row,
position AS P,
SUM(case when position < P then 1 else 0 end) AS Above,
SUM(case when position > P then 1 else 0 end) AS Below
FROM OriginalTable
GROUP BY section, row, position
ORDER BY section, row, position
求和的情况没有将 P 识别为位置,当我将 P 更改为数字时,总和就差了。
【问题讨论】:
-
您能提供一些示例数据并期待结果吗?
-
P 是在您的 SELECT 子句中定义的别名。您不能在同一个 SELECT 子句中的其他任何地方使用它(例如,在 SUM 或 COUNT 或其他任何内容中的条件中)。这与 COUNT 与 SUM 无关,也与对列别名的有效和无效引用有关。