SQL Server 2014 Grupowanie danych w zakresie

0

Witam,
Mam podstawową wiedzę z SQL, jednak muszę zrobić bardziej zaawansowaną funkcję.mam tabelę:
wartosc1
1
6
3
1
4
12

1.chce pogrupować dane aby wiedzieć ile jest liczb w poszczególnym przedziale i jaka jest maksymalna skala przedziału.
2. chce pogrupować dane aby wiedzieć ile jest liczb mniejszych bądź równych zadanej wartości i jaka jest wartość maksymalna danego przedziału.

dla (1) i przedziału co 1 tabel powinna wyglądać:
1 2
2 0
3 1
4 1
5 0
6 1
7 0
8 0
9 0
10 0
11 0
12 1
ewentualnie bez przedziałów o zerowej liczebności.
Dla (1) i przedziału co 5 tabela powinna wyglądać
5 4
10 1
15 1

dla (2) i przedziału co 1 tabel powinna wyglądać:
1 2
2 0
3 1
4 1
5 0
6 1
7 0
8 0
9 0
10 0
11 0
12 1
ewentualnie bez przedziałów o zerowej liczebności.
Dla (2) i przedziału co 5 tabela powinna wyglądać
5 4
10 5
15 6

dla (2) doszedłem do takiego momentu

DECLARE @cnt INT = 1;
DECLARE @mmax INT = (SELECT max (wartosc1) FROM [Raporty].[dbo].[Dane] )

WHILE @cnt < @mmax
BEGIN
SELECT
count ([wartosc1]) as count
FROM [Raporty].[dbo].[Dane] where [wartosc1] >= @cnt
SET @cnt = @cnt + 1;
END;
Jednak dostaje wiele tabel gdzie jest tylko stan licznika w zadanym przedziale ale nie wiem jaki to przedział. Jak można zapytać o dane aby otrzymać jedną table pokazaną powyżej?
Myślałem o group by ale nie wiem jak dać dynamiczny warunek na przedział wartości zmiennej wartosc1
Macie jakieś podpowiedzi jakich funkcji lub składni tu użyć?

0

Na takie rzeczy to szkoda SQL. Funkcje analityczne w Excel robią dokładnie to co chcesz...

0

Konstruktywna uwaga...
Musze to zrobić w SQL dlatego pytam o SQL...

0

Musisz sobie podzielić dane wartości przez wartość przedziału i zaokrąglić wynik w górę...
Czyli:
wartosc1 przez1 przez2 przez5
1;1;1;1
6;6;3;2
3;3;2;1
1;1;1;1;
4;4;2;1
12;;12;6;3

i potem te wyniki pogrupować...

0

Faktycznie, dziękuje za pomoc. Przy pomocy dzielenia i zaokrąglenia otrzymam zadane przedziały z ich liczebnością, a resztę już mogę obrobić w Excelu. Nie chciałem wszystkiego zasysać do Excela gdyż będę miał do 130 przedziałów danych, a bez posortowania danych miałbym milion rekordów. Nie wiem jak bardzo by to zwolniło obrabianie danych, ale analiza błędów na mniejszej liczbie danych będzie łatwiejsza.

1 użytkowników online, w tym zalogowanych: 0, gości: 1