2018-07-08 8:19 GMT+02:00 Cecil Westerhof <cldwester...@gmail.com>:

> I thought there was a problem with RANDOM. I used:
>     ,        ABS(RANDOM()) / CAST(1.4E18 AS INTEGER) AS Randomiser
>
> And it seemed I got a lot of threes.
>
> To check this I used:
>     SELECT Randomiser
>     ,      COUNT(*)   AS Count
>     FROM (
>         SELECT   date
>         ,        ABS(RANDOM()) / CAST(1.4E18 AS INTEGER) AS Randomiser
>         FROM     CPUUsage
>         ORDER BY date
>     )
>     GROUP BY Randomiser
>     ORDER BY Randomiser
>
> And this gave results like:
>     "0"    "165491"
>     "1"    "166270"
>     "2"    "166207"
>     "3"    "165727"
>     "4"    "165619"
>     "5"    "165749"
>     "6"    "98042"
>
> So 6 is created less often as 0 - 5, but that is in my use case not a
> problem.
>
> This worked for me because I have a big table CPUUsage. But if I would not
> have, is there another way to to do this?
>

By the way better select is:
    SELECT Randomiser
    ,      COUNT(*)   AS Count
    FROM (
        SELECT   date
        ,        CAST(ABS(RANDOM()) / (9.223E18 / 7) AS INTEGER) AS
Randomiser
        FROM     CPUUsage
        ORDER BY date
    )
    GROUP BY Randomiser
    ORDER BY Randomiser

This gives:
    "0"    "156204"
    "1"    "157032"
    "2"    "155636"
    "3"    "156399"
    "4"    "156256"
    "5"    "155480"
    "6"    "156073"
    "7"    "52"

This is much better. Only very rarely you get a seven you do not want.
(Again in my case not really a problem.)

Because in my case I use Randomiser to get a small subset of the records,
this can be solved with:
    SELECT Randomiser
    ,      COUNT(*)   AS Count
    FROM (
        SELECT   date
        ,        CAST(ABS(RANDOM()) / (9.223E18 / 7) AS INTEGER) AS
Randomiser
        FROM     CPUUsage
        ORDER BY date
    )
    WHERE    Randomiser <> 7
    GROUP BY Randomiser
    ORDER BY Randomiser
​

​Then I get something like:
    "0"    "155806"
    "1"    "156270"
    "2"    "156473"
    "3"    "155748"
    "4"    "155828"
    "5"    "156196"
    "6"    "156733"​

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

Reply via email to