我有与this person完全相同的问题,但对于MySQL而不是SQL Server。可以用MySQL完成取消分组吗?遗憾的是,MySQL没有“Unpivot”功能。以下是我需要的一个例子:
原始数据:
----------------------------------
owner id | name | occurances
----------------------------------
1 | red | 4
1 | yellow | 2
1 | green | 3
----------------------------------
查询输出:
---------------
id | name
---------------
1 | red
1 | red
1 | red
1 | red
1 | yellow
1 | yellow
1 | green
1 | green
1 | green
---------------
答案 0 :(得分:0)
你需要一组数字。这是一种方式:
select id, name
from t join
(select d1.d + 10 * d2.d + 100*d3.d as num
from (select 1 as d union all select 2 union all select 3 union all
select 4 union all select 5 union all select 6
select 7 union all select 8 unin all select 9 union all select 0
) d1 cross join
(select 1 as d union all select 2 union all select 3 union all
select 4 union all select 5 union all select 6
select 7 union all select 8 unin all select 9 union all select 0
) d2 cross join
(select 1 as d union all select 2 union all select 3 union all
select 4 union all select 5 union all select 6
select 7 union all select 8 unin all select 9 union all select 0
) d3
) n
where n.num between 1 and occurrences
这适用于最高999的数字。