2016-11-03 87 views
1

爲了得到最後的結果我需要寫的查詢很多:如何總結PostgreSQL中的語句?

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'; 
... 

其中column23-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 | 

任何幫助appriciated!

回答

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 

我通常做的T-SQL的MS-SQL,但是這是非常基本的,所以我希望這將在Postgres的

+0

謝謝,我還在學習 –

1

的情況下,爲什麼工作?你可以按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 
    column2 
+0

謝謝,還在學習過程中! –