【发布时间】:2013-07-26 13:18:16
【问题描述】:
下午,
我是 Oracle 和 SQL 的新手,但我有一个使用以下代码创建的查询。我目前使用 Oracle 10g。我只是想知道是否有人可以帮助我使此代码动态而不是硬编码。
我的代码只是查看记录用户活动的表。然后,我基本上计算了我们为每个用户/PC 拥有的记录数,并将其显示在数据透视表中。
这不是一个非常困难的查询,但我可能需要输入大约 30 台左右的 PC,而这种硬编码方法绝对不是完成这项任务的最佳方式。
我一直在 Internet 上搜索以查看我可以根据主机名或 user_ID 使用的动态语句,但我没有找到任何简单地循环遍历我的数据然后生成此 piviot 样式视图的内容。
我一直在看'Cursors',但我认为我差得很远。
Ant 帮助是提前获得的。
问候 贝蒂
SELECT USER_ID,
SUM(CASE WHEN host LIKE 'PC1' THEN 1 ELSE 0 END) AS PC1,
SUM(CASE WHEN host LIKE 'PC2' THEN 1 ELSE 0 END) AS PC2,
SUM(CASE WHEN host LIKE 'PC3' THEN 1 ELSE 0 END) AS PC3,
SUM(CASE WHEN host IS NOT NULL THEN 1 ELSE 0 END) AS grand_total
FROM table_Name
GROUP BY USER_ID
【问题讨论】:
标签: oracle oracle10g oracle-sqldeveloper