【发布时间】:2016-04-18 08:35:09
【问题描述】:
说,我有一张类似的桌子
命名宠物 ------------------------- 安娜猫、狗、仓鼠 约翰猫 杰克狗,猫 吉尔鹦鹉我想数一数,有多少人拥有不同类型的宠物。输出将类似于
宠物主人 --------------- 猫 3 狗 2 仓鼠 1 鹦鹉 1限制:
- 重新设计 DB 方案是不切实际的。如果我能做到,我就不会在这里了。
- 所有逻辑都必须在一个 SQL 查询中完成。
- 我无法在代码中获取结果表并推断所有者计数。
- 可以使用内置的 Oracle 函数,但不鼓励编写自定义函数。
- Oracle 版本 - 11 及更高版本。
【问题讨论】:
-
这个表不满足数据库表的最低要求!至少应该满足第一个规范化形式。
-
可能的宠物列表是否有限?存储在单独的表中?
-
yasserkabbout:最初“Pets”字段的意思是作为日志字段,应该只显示在报告中。 StanislavL:有限?不是数学意义上的。在单独的表中?是的,但是用户可以从该表中删除记录,但此删除不会(也不能)影响此处显示的表。
标签: sql oracle csv count group-by