Je voulais créer une vue au-dessus de ma table de ruche mais la vue doit contenir
seulement 10% du total des enregistrements. Count(*)/10

Comment puis-je le faire avec la fonction ROWNUM() ou RANK.
il sera très utile que les données soient aléatoires.

0
Aditya Dhanraj 20 août 2020 à 16:48

2 réponses

Meilleure réponse

Si un échantillon d'environ 10% est suffisant, incluez simplement:

create view v_t
    select t.*
    from t
    where rand() < 0.1;

Pour une grande table, cela devrait être assez proche d'exactement 10%.

1
Gordon Linoff 20 août 2020 à 14:14

Vous pouvez également utiliser la fonction de fenêtre ntile comme ci-dessous:

create view v_t
    select * from 
    (select *, ntile(10) over(order by rand()) as percentile from tablename) as A 
    where percentile=1

J'ai testé une requête similaire dans Postgres. Voici une démo

0
Sourish 20 août 2020 à 15:01