Tôi có một bảng myTable
với 3 cột. col_1
là INTEGER
và 2 cột còn lại là DOUBLE
. Ví dụ: col_1={1, 2}, col_2={0.1, 0.2, 0.3}
. Mỗi phần tử trong col_1
bao gồm tất cả các giá trị của col_2
và col_2
có giá trị lặp lại cho mỗi phần tử trong col_1
. Cột thứ 3 có thể có bất kỳ giá trị như hình dưới đây:Không thể sử dụng nhóm theo và hơn (phân vùng theo) trong cùng một truy vấn?
col_1 | col_2 | Value
----------------------
1 | 0.1 | 1.0
1 | 0.2 | 2.0
1 | 0.2 | 3.0
1 | 0.3 | 4.0
1 | 0.3 | 5.0
2 | 0.1 | 6.0
2 | 0.1 | 7.0
2 | 0.1 | 8.0
2 | 0.2 | 9.0
2 | 0.3 | 10.0
Những gì tôi muốn là sử dụng một tập hợp chức năng SUM()
trên phân vùng Value
cột bằng cách col_1
và nhóm lại theo col_2
. Bảng Trên nên xem xét như thế này:
col_1 | col_2 | sum_value
----------------------
1 | 0.1 | 1.0
1 | 0.2 | 5.0
1 | 0.3 | 9.0
2 | 0.1 | 21.0
2 | 0.2 | 9.0
2 | 0.3 | 10.0
tôi đã cố gắng truy vấn SQL sau:
SELECT col_1, col_2, sum(Value) over(partition by col_1) as sum_value
from myTable
GROUP BY col_1, col_2
Nhưng trên v10.5 DB2 nó đã cho các lỗi sau:
SQL0119N An expression starting with "Value" specified in a SELECT
clause, HAVING clause, or ORDER BY clause is not specified in the
GROUP BY clause or it is in a SELECT clause, HAVING clause, or ORDER
BY clause with a column function and no GROUP BY clause is specified.
Can bạn vui lòng chỉ ra những gì là sai. Tôi không có nhiều kinh nghiệm với SQL.
Cảm ơn bạn.
MySQL có liên quan gì đến câu hỏi này? (Không gắn thẻ các sản phẩm không liên quan ...) – jarlh