我在看过去12个月。每个月在数据集中5次,每个段一次。每一行(Segment,yearmonth)也有“调用”。所以每一行看起来像
Segment YearMonth Calls
1 201505 20
但是,该细分受众群只在第一个月的行中,所以它看起来像这样:
Segment YearMonth Calls
1 201505 20
201506 20
201507 20
201508 20
201509 20
2 201505 20
...
我的问题是,如何在每个新细分之前插入空白行? 谢谢!
答案 0 :(得分:1)
SQL通常不会进行格式化,但Oracle SQL * Plus会进行格式化。如果您正在使用SQL * Plus并且您的查询将返回:
SEGMENT YEARMONTH CALLS
1 201505 20
1 201506 20
1 201507 20
1 201508 20
1 201509 20
2 201505 20
2 201506 20
您可以输入: 突破分段 在你的查询之前得到类似的东西:
SEGMENT YEARMONTH CALLS
1 201505 20
201506 20
201507 20
201508 20
201509 20
2 201505 20
201506 20
如果要在每个SEGMENT之后添加空格,可以使用:
BREAK ON SEGMENT SKIP 1
如果您使用的不是SQL * Plus,则需要在问题中说明。
答案 1 :(得分:1)
如果您想在每个段之前返回一个空行,则某些伪sql可能是:
SELECT *
FROM
(
SELECT segment
,yearmonth
,calls
FROM table
UNION
SELECT segment
,[yearmonth] = null
,[calls] = null
FROM
(
SELECT distinct segment
FROM table
) seg
) base
ORDER BY segment
,yearmonth