为了获得最终结果,我需要编写大量查询:
SELECT min(x) from table WHERE column1='ab' AND column2='3';
SELECT min(y) from table WHERE column1='ab' AND column2='3';
SELECT max(x) from table WHERE column1='ab' AND column2='3';
SELECT max(y) from table WHERE column1='ab' AND column2='3';
SELECT min(x) from table WHERE column1='ab' AND column2='4';
SELECT min(y) from table WHERE column1='ab' AND column2='4';
SELECT max(x) from table WHERE column1='ab' AND column2='4';
SELECT max(y) from table WHERE column1='ab' AND column2='4';
...
其中column2
来自3-8
。
我想我可以CASE
以某种方式,也许为FOR
执行某种column2
循环,但我没有成功。或者我可以用它做点什么?
通缉结果:
column2 | minx | miny | maxx | maxy |
3 | number | number | number | number |
4 | number | number | number | number |
5 | number | number | number | number |
6 | number | number | number | number |
7 | number | number | number | number |
8 | number | number | number | number |
任何有用的帮助!
答案 0 :(得分:2)
不确定你是如何使用案例的,但似乎只是用于分组声明。
SELECT Column2, Min(x), Min(y), Max(x), Max(y)
FROM table
WHERE Column1='ab' AND Column2 > 2 AND Column2 < 9 GROUP BY Column2
我通常会为MS-SQL做T-SQL,但这是非常基本的,所以我希望这可以在Postgres上运行
答案 1 :(得分:1)
为什么要这样?您可以按列2进行分组。
select
column2,
min(x) as minx,
min(y) as miny,
max(x) as maxx,
max(y) as maxy
from table
where column1 = 'ab' and column2 between 3 and 8
group by
column2