如何在另一个结构中转换后续数据表

时间:2014-01-09 10:07:56

标签: mysql sql group-by max min

我有以下数据表:

year, month,  customer, agent 
2013,  1,     abc,      yyyy 
2013,  2,     abc,      yyyy 
2013,  3,     abc,      zzzz 
2013,  4,     abc,      xxxx 
... 
2013,  12,    abc,      xxxx

我需要在像

这样的结构中转换这个表
year, from, to, customer, agent
2013, 1,    2   abc,      yyyy
2013, 3,    3   abc,      zzzz
2013, 4,    12  abc,      xxxx

所以我尝试使用MAX和MIN函数来识别客户和代理商的MIN和MAX月份但是它不起作用。

你能帮帮我吗? 感谢

1 个答案:

答案 0 :(得分:3)

试试这个:

SELECT A.year, 
       MIN(A.month) `from`,
       MAX(A.month) `to`, 
       A.customer, 
       A.agent
FROM tableA A
GROUP BY A.year,
         A.customer, 
         A.agent

检查SQL FIDDLE DEMO

<强>输出

| YEAR | FROM | TO | CUSTOMER | AGENT |
|------|------|----|----------|-------|
| 2013 |    4 | 12 |      abc |  xxxx |
| 2013 |    1 |  2 |      abc |  yyyy |
| 2013 |    3 |  3 |      abc |  zzzz |