2013-01-23 17 views
9

W SPARQL, możemy grupować wiersze przez kolumnę przez składni gollowing:sparql: jak GROUP BY więcej niż jedną kolumnę

GROUP BY ?colName 

Możemy grupa o więcej niż 1 kolumny np

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

Załóżmy zapytania jak:

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

Ale ta kwerenda nie działa.

Odpowiedz

-2

Próbowałeś coś takiego

SELECT? A + b + = C, (minimum (? R) d?) Gdzie { .... } GROUP BY (? A +? B +? c)

To działa w SQL Server dobrze

5

można GROUP BY wielu zmiennych (kolumn) nie wymieniając ich z przestrzeni pomiędzy:

GROUP BY ?a ?b ?c 
4

Oprócz odpowiedzi Ben Companjen dnia

GROUP ?a ?b ?c 

trzeba naprawić Linia wyboru, ponieważ nie można zemdleć nieokreślonej klucze non-Group nie mówiąc o tym na przykład

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

nie czytałem o 'jeszcze kontrole wyrywkowe, ale teraz, że zrobiłem, myślę, że' klauzula SELECT' nie musi być stała. 'SAMPLE' jest potrzebny dla zmiennych w klauzuli' SELECT', które są _nie_ w klauzuli GROUP BY, a nie zagregowane w inny sposób, ale '? A? B? C' są dokładnie tymi zmiennymi w klauzuli GROUP BY. Jeśli jakaś dodatkowa zmienna '? E' miała wartość' WYBIERZ', ale nie 'GROUP BY', musiałaby to być' SAMPLE'd. –

Powiązane problemy