Woops, I think I had it right the first time then re-thought it wrongly :)


Your SQL would then look like this:


CREATE TABLE T (Grp INT);

INSERT INTO T VALUES (5),(21),(27),(28),(22),(39),(44),(45),(46),(51),(88);

WITH TC(Tot) AS (
  SELECT CAST(COUNT(*) AS REAL) FROM T
), SL(Slice) AS (
  SELECT CAST((T.Grp / 10) AS INT) * 10
    FROM T
)
SELECT Slice||' - '||(Slice+9) AS Slice, COUNT(*) AS Cnt, ROUND(COUNT(*) / Tot * 100,2) AS Perc
  FROM SL, TC
 GROUP BY Slice


  -- Slice     | Cnt |      Perc
  -- --------- | --- | ---------
  -- 0 - 9     |  1  |      9.09
  -- 20 - 29   |  4  |     36.36
  -- 30 - 39   |  1  |      9.09
  -- 40 - 49   |  3  |     27.27
  -- 50 - 59   |  1  |      9.09
  -- 80 - 89   |  1  |      9.09



_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to