Tôi có một bảng cơ sở dữ liệu Oracle như vậy, ghi lại một mục được quét tại một điểm quét.Chọn nhiều số đếm từ một bảng cơ sở dữ liệu trong một lệnh sql
ItemsScan
ItemScanId
ItemScanPoint
itemtype
ScanTime
Tôi muốn trả lại ItemScanPoint cùng với số lần một ItemType cụ thể được quét tại ItemScanPoint đó.
cái gì đó dọc theo dòng của ..
SELECT ItemScanPoint,
(SELECT COUNT(*) WHERE ItemType = 1),
(SELECT COUNT(*) WHERE ItemType = 2)
FROM ItemsScan
Làm thế nào để làm điều này trong oracle?
Cách hiệu quả nhất là gì?
@endorphin, Đây có lẽ là giải pháp tốt nhất vì CASE là SQL chuẩn nhưng cũng có thể sử dụng hàm DECODE() của Oracle, ví dụ: SUM (DECODE (ItemType, 1, 1, 0)), SUM (DECODE (ItemType, 2, 1, 0)) '. Có thể tiết kiệm một số tổ hợp phím nếu bạn không cần một giải pháp di động. –