2013-01-23 27 views
9

Trong SPARQL, chúng ta có thể nhóm các hàng bởi một cột thông qua cú pháp gollowing:SPARQL: làm thế nào để GROUP BY nhiều hơn một cột

GROUP BY ?colName 

Chúng ta có thể nhóm hơn 1 cột ví dụ:

GROUP BY (?colName1 + ?colName2 + ?colName3) 

Giả sử một truy vấn như:

Select ?a ?b ?c (MIN(?y) AS ?d) 
Where { 
.... 
} 
GROUP BY (?a + ?b + ?c) 

Nhưng truy vấn này không hoạt động.

Trả lời

-2

Các bạn đã thử một cái gì đó giống như

CHỌN? A + b +? C, (MIN (? Y) AS? D) đâu { .... } GROUP BY (a +? B +? c)

này hoạt động trong SQL server tốt

5

Bạn có thể GROUP BY nhiều biến (không cột) bằng cách liệt kê chúng với một không gian ở giữa:

GROUP BY ?a ?b ?c 
4

Ngoài câu trả lời của

GROUP ?a ?b ?c 

bạn cần phải sửa chữa các dòng CHỌN Bến Companjen như bạn không thể vượt qua khỏi các phím không thuộc nhóm không xác định mà không nói rõ ràng như vậy ví dụ

Select (sample(?a) AS ?A) (sample(?b) as ?B) (sample(?c) as ?C) (MIN(?y) AS ?d) 
+0

Tôi chưa đọc về 'SAMPLE', nhưng bây giờ tôi đã làm, tôi nghĩ rằng mệnh đề' SELECT' không cần phải sửa. 'MẪU' là cần thiết cho các biến trong mệnh đề' SELECT' là _not_ trong mệnh đề 'GROUP BY' và không được tổng hợp theo cách khác, nhưng'? A? B? C' là chính xác các biến trong mệnh đề 'GROUP BY'. Nếu một số biến bổ sung '? E' là' SELECT'ed, nhưng không phải 'GROUP BY'ed, nó sẽ cần phải là' SAMPLE'd. –

Các vấn đề liên quan