在一个sql命令中从一个数据库表中选择多个计数
我有一个像这样的Oracle数据库表,它记录了在扫描点扫描的项目。
物品扫描
ItemScanId
ItemScanPoint
项目类型
扫描时间
我想返回 ItemScanPoint 以及在该 ItemScanPoint 处扫描特定 ItemType 的次数。
类似于..
SELECT ItemScanPoint,
(SELECT COUNT(*) WHERE ItemType = 1),
(SELECT COUNT(*) WHERE ItemType = 2)
FROM ItemsScan
我如何在 Oracle 中执行此操作?
最有效的方法是什么?
I have a Oracle database table like so, which records an item being scanned at a scanning point.
ItemsScan
ItemScanId
ItemScanPoint
ItemType
ScanTime
I want to return the ItemScanPoint along with the number of times a specific ItemType was scanned at that ItemScanPoint.
Something along the lines of..
SELECT ItemScanPoint,
(SELECT COUNT(*) WHERE ItemType = 1),
(SELECT COUNT(*) WHERE ItemType = 2)
FROM ItemsScan
How do I do this in oracle?
What is the most efficient way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这对你有用吗?
Does this work for you?
count是oracle中的一个分组函数。试试这个:
Count is a grouping function in oracle. Try this:
也可以使用 COUNT() 作为分析函数来执行此操作:
它将以与 OP 中要求的格式不同的格式返回数据,但它将返回 所有 值的结果code>ItemType 而不仅仅是两个。
希望这有帮助。
It might be possible to do this using COUNT() as an analytic function as well:
It will return the data in a different format than that asked in the OP but it will return results for all values of
ItemType
rather than just two.Hope this helps.