2017-06-06 77 views
0

有人可以让我知道如何从第一个表中获得输出。请注意,我不允许使用循环。我尝试了窗口功能,但没有运气。如何分区表行获得每个进程的最小值和最大值

CUSTOMER_NUMBER ORDER_NO PROCESS 
100    1001  1 
100    1002  1 
100    1003  2 
100    1004  2 
100    1005  2 
100    1006  3 
100    1007  3 
100    1008  3 
101    1009  1 
101    1010  1 
101    1011  2 
101    1012  2 
101    1013  2 

CUSTOMER_NUMBER MIN_VALUE, MAX_VALUE, PROCESS 
100    1001  1002   1 
100    1003  1005   2 
100    1006  1008   3 
101    1009  1010   1 
101    1011  1013   2 
+0

有人可以让我知道如何从第一个表中获得输出。请注意,我不允许使用循环。我尝试了窗口功能,但没有运气。 – Tissa

+0

您是否可以为customer_number重复流程?也标记正在使用的数据库。 –

+0

每个客户都没有重复的流程。这是Redshift – Tissa

回答

0

在这里你去

select 
    min(ORDER_NO) as MIN_VALUE, 
    max(ORDER_NO) as MAX_VALUE, 
    PROCESS 
from yourTable 
group by PROCESS 
0

,如果你想获得的结果通过窗口功能,您可以使用MAX()超过()和MIN()超过()窗口功能:

SELECT 
    customer_number, 
    order_no, 
    min(order_no) 
    OVER (
    PARTITION BY customer_number, process) AS min_value, 
    max(order_no) 
    OVER (
    PARTITION BY customer_number, process) AS max_value, 
    process 
FROM table_1 

这将产生附加2列(min_value,max_value)的原始表格。

相关问题