esto puede servir :) with consulta as ( select generate_series(1,21) as q ) select q,substr(ran::Text,1,1) from ( select * ,random()*7+1 as ran from consulta ) as a
El mar., 14 de may. de 2019 a la(s) 11:51, Hellmuth Vargas (hiv...@gmail.com) escribió: > Hola Lista > > Disculpe si no fui muy claro: tenemos una tabla con miles de registros y > entre las comunas esta el día de la semana (lunes, martes miércoles....). > Requerimos obtener una muestra aleatoria de los registros de la tabla (el > porcentaje puede variar) donde se garantice que siempre este al menos una > vez cada día de la semana, no indican que sea distribución uniforme de los > mismos, solo que estén presentes todos en la muestra y esto debe generarse > con SQL (ni siquiera PL/pgSQL). en el caso extremo que saquen 7 registros > de muestra, deberían estar los 7 días de la semana representados. > Gracias por su tiempo y aportes lista > > > El mar., 14 de may. de 2019 a la(s) 10:32, Francisco Olarte ( > fola...@peoplecall.com) escribió: > >> Hellmuth: >> >> On Tue, May 14, 2019 at 4:29 PM Hellmuth Vargas <hiv...@gmail.com> wrote: >> > Tengo una tabla con unos datos por día de la semana, la tabla tiene >> miles de registros, necesitamos sacar valores aleatorios de esta tabla >> pero al menos debe haber uno por cada día de la semana, obvio el mínimo >> tamaño de la muestra es 7. Como me sugieren hacer esto? de antemano >> gracias lista >> >> Lo describes demasiado por encima para que se pueda decir nada. >> Suponemos que habra datos de todos los dias de la semana, pero ni >> siquiera dices si el dia de la semana se ha de sacar de un campo "dia >> de la semana" , o cuantos registros tienes que sacar, o si, aparte de >> que haya uno por cada dia de la semana al menos, quieres algun otro >> tipo de distribucion en los dias de semana ( i.e., para 700 quieres >> mas o menos 100 de cada? ). >> >> Asi a pelo, con lo que dices, te diria, saca 7 aleatorios >> condicionados al dia de la semana ( un random entre los lunes, otro >> entre los martes, otro entre los miercoles, ... ) y N-7 totalmente >> random. O, en enteros, N/7 +1 de los N%7 primeros dias de la semana y >> N/7 del resto. Hay mil formas, con tan pocas condiciones es >> complicado. Y tampoco nos dices muchos si quieres sacar un numero >> exacto de muestras o solo aproximado ( que se hacen de distinta forma >> si quieres evitar sesgos en la distribucion ). >> >> >> Francisco Olarte. >> > > > -- > Cordialmente, > > Ing. Hellmuth I. Vargas S. > Esp. Telemática y Negocios por Internet > Oracle Database 10g Administrator Certified Associate > EnterpriseDB Certified PostgreSQL 9.3 Associate > > -- Eduardo Arenas +56 9 6629 1618