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

Reply via email to