为了获得最终结果,我需要编写大量的查询:
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,也许可以为column2执行某种FOR循环,但我没有成功。或者我可以用它做点什么?
通缉结果:
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 |任何帮手都可以!
发布于 2016-11-03 21:43:15
不确定在这种情况下如何使用用例,但对于group by语句来说似乎是一种简单的使用。
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,但是这是非常基本的,所以我希望这能在Postgres上工作。
发布于 2016-11-03 21:43:42
为什么是案子?您只需按column2分组即可。
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
column2https://stackoverflow.com/questions/40411519
复制相似问题