我遇到了根据具体情况选择和更改列名称的问题。例如,如果我的表A包含name
,date
,value
属性,则其中:
name |date |value
iphone |2015-05-01 |1
ipad |2015-05-09 |3
ipod |2015-05-20 |6
现在我想选择这个表满足条件,如果name
不等于samsung
,nokia
所以它应该分配给apple
,如果它们的值应该是和是在同一个月。例如,此表将显示结果:
name |date |value
apple |2015-05 |10
有人可以帮助我吗?
答案 0 :(得分:1)
这个想法是:你可以在mysql的group by子句中使用别名,但是如果别名等于列名,我想你会遇到一些问题。
select
case when name in ('samsung', 'nokia') then name else 'apple' end as name1,
EXTRACT( YEAR_MONTH FROM date) as date1,
SUM(value) as value
from table1
group by
name1,
date1
请参阅SqlFiddle