librelist archives

« back to archive

group by 2 fields

group by 2 fields

From:
Instr. Dwayne Macgowan
Date:
2011-01-04 @ 22:54
Hola!

estoy tratando de hacer una cuenta en sql que debe agrupar por 2 campos.
en sql es fácil, pero no se como generar el sql con ruby usando
ActiveRecord.
si uso :group => "field1, field2" no hace lo que espero.

Re: [rubysur] group by 2 fields

From:
Mauricio Garavaglia
Date:
2011-01-04 @ 23:03
Hola! si entendi bien :group hace lo que buscas, podes poner el codigo que
no funciona asi podemos ayudarte? Gracias!

Mauricio

2011/1/4 Instr. Dwayne Macgowan <dwayne.macgowan@metododerose.org>

> Hola!
>
> estoy tratando de hacer una cuenta en sql que debe agrupar por 2 campos.
> en sql es fácil, pero no se como generar el sql con ruby usando
> ActiveRecord.
> si uso :group => "field1, field2" no hace lo que espero.
>
>
>
>

Re: [rubysur] group by 2 fields

From:
Instr. Dwayne Macgowan
Date:
2011-01-05 @ 13:40
Tengo un modelo Asistencia que tiene persona_id y horario_id.

Hago *Asistencia.count(:group => 'persona_id, horario_id')*
*
*
Lo que recibo es un array de arrays, hasta ahí vamos bien, pero de 2
elementos, no 3.

Me da persona_id y la cuenta, no persona_id, horario_id y la cuenta.





2011/1/4 Mauricio Garavaglia <mauriciogaravaglia@gmail.com>

> Hola! si entendi bien :group hace lo que buscas, podes poner el codigo que
> no funciona asi podemos ayudarte? Gracias!
>
> Mauricio
>
> 2011/1/4 Instr. Dwayne Macgowan <dwayne.macgowan@metododerose.org>
>
> Hola!
>>
>> estoy tratando de hacer una cuenta en sql que debe agrupar por 2 campos.
>> en sql es fácil, pero no se como generar el sql con ruby usando
>> ActiveRecord.
>> si uso :group => "field1, field2" no hace lo que espero.
>>
>>
>>
>>
>

Re: [rubysur] group by 2 fields

From:
Ary Manzana
Date:
2011-01-05 @ 14:13
Encontré esto:


https://rails.lighthouseapp.com/projects/8994/tickets/588-model-count-not-including-all-group-fields

Lamentablemente no dice por qué se cerró como invalid. :-(

En estos casos, si lleva demasiado tiempo (más de media hora) hacer que
ActiveRecord ejecute la consulta como queremos, recomiendo hacer:

Asistencia.connection.execute("tu consulta")

que siempre funciona :-P

2011/1/5 Instr. Dwayne Macgowan <dwayne.macgowan@metododerose.org>

> Tengo un modelo Asistencia que tiene persona_id y horario_id.
>
> Hago *Asistencia.count(:group => 'persona_id, horario_id')*
> *
> *
> Lo que recibo es un array de arrays, hasta ahí vamos bien, pero de 2
> elementos, no 3.
>
> Me da persona_id y la cuenta, no persona_id, horario_id y la cuenta.
>
>
>
>
>
> 2011/1/4 Mauricio Garavaglia <mauriciogaravaglia@gmail.com>
>
>  Hola! si entendi bien :group hace lo que buscas, podes poner el codigo que
>> no funciona asi podemos ayudarte? Gracias!
>>
>> Mauricio
>>
>> 2011/1/4 Instr. Dwayne Macgowan <dwayne.macgowan@metododerose.org>
>>
>> Hola!
>>>
>>> estoy tratando de hacer una cuenta en sql que debe agrupar por 2 campos.
>>> en sql es fácil, pero no se como generar el sql con ruby usando
>>> ActiveRecord.
>>> si uso :group => "field1, field2" no hace lo que espero.
>>>
>>>
>>>
>>>
>>
>

Re: [rubysur] group by 2 fields

From:
Nicolas Gaivironsky
Date:
2011-01-05 @ 14:40
Se puede hacer algo como:
Asistencia.all(:select => 'persona_id, horario_id, count(*)', :group =>
'persona_id, horario_id')

2011/1/5 Ary Manzana <ary@esperanto.org.ar>

> Encontré esto:
>
>
> 
https://rails.lighthouseapp.com/projects/8994/tickets/588-model-count-not-including-all-group-fields
>
> Lamentablemente no dice por qué se cerró como invalid. :-(
>
> En estos casos, si lleva demasiado tiempo (más de media hora) hacer que
> ActiveRecord ejecute la consulta como queremos, recomiendo hacer:
>
> Asistencia.connection.execute("tu consulta")
>
> que siempre funciona :-P
>
> 2011/1/5 Instr. Dwayne Macgowan <dwayne.macgowan@metododerose.org>
>
> Tengo un modelo Asistencia que tiene persona_id y horario_id.
>>
>> Hago *Asistencia.count(:group => 'persona_id, horario_id')*
>> *
>> *
>> Lo que recibo es un array de arrays, hasta ahí vamos bien, pero de 2
>> elementos, no 3.
>>
>> Me da persona_id y la cuenta, no persona_id, horario_id y la cuenta.
>>
>>
>>
>>
>>
>> 2011/1/4 Mauricio Garavaglia <mauriciogaravaglia@gmail.com>
>>
>>  Hola! si entendi bien :group hace lo que buscas, podes poner el codigo
>>> que no funciona asi podemos ayudarte? Gracias!
>>>
>>> Mauricio
>>>
>>> 2011/1/4 Instr. Dwayne Macgowan <dwayne.macgowan@metododerose.org>
>>>
>>> Hola!
>>>>
>>>> estoy tratando de hacer una cuenta en sql que debe agrupar por 2 campos.
>>>> en sql es fácil, pero no se como generar el sql con ruby usando
>>>> ActiveRecord.
>>>> si uso :group => "field1, field2" no hace lo que espero.
>>>>
>>>>
>>>>
>>>>
>>>
>>
>

Re: [rubysur] group by 2 fields

From:
Instr. Dwayne Macgowan
Date:
2011-01-05 @ 15:16
justo iba a escribir contando que lo resolvi así:

Asistencia.all(:select => 'persona_id, horario_id, count(*) as count',
:group => 'persona_id, horario_id')






2011/1/5 Nicolas Gaivironsky <ngaivi@gmail.com>

> Se puede hacer algo como:
> Asistencia.all(:select => 'persona_id, horario_id, count(*)', :group =>
> 'persona_id, horario_id')
>
> 2011/1/5 Ary Manzana <ary@esperanto.org.ar>
>
>> Encontré esto:
>>
>>
>> 
https://rails.lighthouseapp.com/projects/8994/tickets/588-model-count-not-including-all-group-fields
>>
>> Lamentablemente no dice por qué se cerró como invalid. :-(
>>
>> En estos casos, si lleva demasiado tiempo (más de media hora) hacer que
>> ActiveRecord ejecute la consulta como queremos, recomiendo hacer:
>>
>> Asistencia.connection.execute("tu consulta")
>>
>> que siempre funciona :-P
>>
>> 2011/1/5 Instr. Dwayne Macgowan <dwayne.macgowan@metododerose.org>
>>
>> Tengo un modelo Asistencia que tiene persona_id y horario_id.
>>>
>>> Hago *Asistencia.count(:group => 'persona_id, horario_id')*
>>> *
>>> *
>>> Lo que recibo es un array de arrays, hasta ahí vamos bien, pero de 2
>>> elementos, no 3.
>>>
>>> Me da persona_id y la cuenta, no persona_id, horario_id y la cuenta.
>>>
>>>
>>>
>>>
>>>
>>> 2011/1/4 Mauricio Garavaglia <mauriciogaravaglia@gmail.com>
>>>
>>>  Hola! si entendi bien :group hace lo que buscas, podes poner el codigo
>>>> que no funciona asi podemos ayudarte? Gracias!
>>>>
>>>> Mauricio
>>>>
>>>> 2011/1/4 Instr. Dwayne Macgowan <dwayne.macgowan@metododerose.org>
>>>>
>>>> Hola!
>>>>>
>>>>> estoy tratando de hacer una cuenta en sql que debe agrupar por 2
>>>>> campos.
>>>>> en sql es fácil, pero no se como generar el sql con ruby usando
>>>>> ActiveRecord.
>>>>> si uso :group => "field1, field2" no hace lo que espero.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>