Suma danej kolumny

C1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Mam takie zapytanie, które zwraca wiersza z kursami i ilością użytkowników do nich przypisanych:

Kopiuj
SELECT c.name, COUNT(ue.id) as enroled FROM c.course 
JOIN enroling en ON en.id_course = c.id
JOIN user_enroled ue ON ue.enrol_id = en.id 
GROUP BY c.id, cname
ORDER BY c.name

które zwraca mi taką tabelę:

name enroled
KURS 1 15
KURS2 20

Teraz pytanie, jak sprawić, by zsumować kolumnę enroled?

UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
1

Chcesz dodać 15 + 20? Jak zrobisz twoje zapytanie bez grupowania to będziesz miał sumę po całości. Możesz też zrobić tak

Kopiuj
select t.name, sum(enroled ) from (
SELECT c.name, COUNT(ue.id) as enroled FROM c.course 
JOIN enroling en ON en.id_course = c.id
JOIN user_enroled ue ON ue.enrol_id = en.id 
GROUP BY c.id, cname
) as t
Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
1

Jaka baza?
Możesz użyć funkcji okna, albo WITH ROLLUP

C1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Baza to MSSQL.

UglyMan napisał(a):

Chcesz dodać 15 + 20? Jak zrobisz twoje zapytanie bez grupowania to będziesz miał sumę po całości. Możesz też zrobić tak

Kopiuj
select t.name, sum(enroled ) from (
SELECT c.name, COUNT(ue.id) as enroled FROM c.course 
JOIN enroling en ON en.id_course = c.id
JOIN user_enroled ue ON ue.enrol_id = en.id 
GROUP BY c.id, cname
) as t

Niestety nie działa to w SQL SERVER. Czy tam taka składnia jest niepoprawna?

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3901
0

sumowanie calosci:

Kopiuj
SELECT  COUNT(ue.id) as enroled FROM c.course 
JOIN enroling en ON en.id_course = c.id
JOIN user_enroled ue ON ue.enrol_id = en.id 

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.