You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle SQL中创建基于多用户ID与状态统计的视图

Oracle SQL 创建用户状态统计视图

可以通过条件聚合分别统计两张表的状态数量,再通过关联查询合并结果,最后创建视图。具体SQL如下:

CREATE VIEW UserStatusSummary AS
SELECT COALESCE(t1.User_ID, t2.User_ID) AS User_ID,
       NVL(t1.Table1Done, 0) AS Table1Done,
       NVL(t1.Table1NotDone, 0) AS Table1NotDone,
       NVL(t2.Table2Done, 0) AS Table2Done,
       NVL(t2.Table2NotDone, 0) AS Table2NotDone
FROM (
    -- 统计表1的Done和Not Done数量
    SELECT User_ID,
           COUNT(CASE WHEN Status = 'Done' THEN 1 END) AS Table1Done,
           COUNT(CASE WHEN Status = 'Not Done' THEN 1 END) AS Table1NotDone
    FROM Table1
    GROUP BY User_ID
) t1
FULL OUTER JOIN (
    -- 统计表2的Done和Not Done数量
    SELECT User_ID,
           COUNT(CASE WHEN Status = 'Done' THEN 1 END) AS Table2Done,
           COUNT(CASE WHEN Status = 'Not Done' THEN 1 END) AS Table2NotDone
    FROM Table2
    GROUP BY User_ID
) t2 ON t1.User_ID = t2.User_ID;

关键说明:

  • 条件聚合:用CASE WHEN筛选指定状态,配合COUNT统计符合条件的记录数,不符合条件的记录会返回NULL,最终用NVL将空值转为0。
  • FULL OUTER JOIN:确保即使某个用户只在其中一张表存在,也能被纳入统计结果。
  • COALESCE:处理关联后可能出现的User_ID空值,优先取表1的User_ID,不存在则取表2的。

创建完成后,直接执行SELECT * FROM UserStatusSummary;就能得到目标统计结果。

内容的提问来源于stack exchange,提问作者Akash Mehta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 13:14:55