请帮助,我不知道如何使用NVL功能获取两个数据的总和,并将其显示为仅两个结果
期望的输出:
Data, date, total no. of g column, total no. of u column
以下是一些疑问:
SELECT 'Data'
||','||To_char(d.dtime_day, 'MM/dd/yyyy')
- 我想得到这部分的总和
||','||NVL(g.POS, 0)
||','||NVL(g.Office, 0)
- 我想得到这部分的总和
||','||NVL(u.POS, 0)
||','||NVL(u.Office, 0)
FROM owner_dwh.dc_date d
答案 0 :(得分:1)
为了获得总和,您希望使用sum
聚合函数和group by
剩余的选定列:
SELECT
'Data'
||','||To_char(d.dtime_day, 'MM/dd/yyyy')
||','||SUM(NVL(g.POS, 0))
||','||SUM(NVL(g.Office, 0))
||','||SUM(NVL(u.POS, 0))
||','||SUM(NVL(u.Office, 0))
FROM
owner_dwh.dc_date d
GROUP BY
To_char(d.dtime_day, 'MM/dd/yyyy'),
NVL(u.POS, 0),
NVL(u.Office, 0)
我怀疑你的问题还有更多,但没有进一步的信息,这就是我们可以提供多大帮助。
此外,应注意sum()
如果nvl()
被null
替换,则0
不需要sum
。 nvl()
会自动执行此操作。我在答案中留下了SELECT
'Data'
||','||To_char(d.dtime_day, 'MM/dd/yyyy')
||','||NVL(g.POS, 0))
||','||NVL(g.Office, 0))
||','|| (NVL(g.POS, 0) + NVL (g.Office, 0))
||','||NVL(u.POS, 0)
||','||NVL(u.Office, 0)
||','|| (NVL(u.POS, 0) + NVL (u.Office, 0))
FROM owner_dwh.dc_date d
。
也许,在重新阅读你的问题后,你想要的是这个;
{{1}}