Re: Contar registros insertados por mes.

Lists: pgsql-es-ayuda
From: Pablo Braulio <brulics(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Contar registros insertados por mes.
Date: 2006-05-02 14:46:01
Message-ID: 200605021646.06368.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola a todos.

Estoy tratando de hacer una consulta para extraer el número de registros
agrupando por el mes. Pero no lo consigo.

Esta es la consulta que hago.

SELECT empresa, to_char(fecha, 'mm/yy') as fecha, count(*) as cantidad from
rev_accesos where empresa = 4 group by empresa, fecha;

El resultado no es el que deseo pues aunque le formateo las salida de "fecha"
para que me muestre sólo mes/año, al parecer los agrupa por días.

-- empresa | fecha | cantidad
---------+-------+----------
4 | 01/06 | 924
4 | 01/06 | 602
4 | 01/06 | 727
4 | 01/06 | 658
4 | 01/06 | 393
4 | 01/06 | 405
4 | 01/06 | 195
4 | 01/06 | 429
4 | 01/06 | 623
4 | 01/06 | 534
4 | 01/06 | 510
4 | 01/06 | 374
4 | 01/06 | 330
4 | 01/06 | 214
4 | 01/06 | 111
4 | 01/06 | 106
4 | 01/06 | 652
4 | 01/06 | 436
4 | 01/06 | 299
4 | 01/06 | 695
4 | 01/06 | 323
...

Estos son los campos de la tabla:

id | integer | not null default
nextval('rev_accesos_id_seq'::regclass)
empresa | integer | not null
equipo | character varying(40) |
usuario | character varying(40) | not null
programa | character varying(10) |
tipo_acceso | character varying(80) | not null
fecha | date | not null
hora | time without time zone | not null
fichero_accedido | character varying(200) |
registro_accedido | character varying(200) |
revision | timestamp without time zone |

¿Alguien podría decirme como puedo hacer esto?.

Gracias a todos.
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D


From: <dkuroki(at)dbas(dot)com(dot)ar>
To: "Pablo Braulio" <brulics(at)gmail(dot)com>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 15:01:10
Message-ID: VHHRLOvS.1146582070.1881830.dkuroki@dbas.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

y si pones:

SELECT empresa, to_char(fecha, 'mm/yy') as fecha, count(*) as cantidad
from
rev_accesos where empresa = 4 group by empresa, to_char(fecha, 'mm/yy')
;

Dorian Kuroki
DBAS

Con fecha 2/5/2006, "Pablo Braulio" <brulics(at)gmail(dot)com> escribió:

>Hola a todos.
>
>Estoy tratando de hacer una consulta para extraer el número de registros
>agrupando por el mes. Pero no lo consigo.
>
>Esta es la consulta que hago.
>
>SELECT empresa, to_char(fecha, 'mm/yy') as fecha, count(*) as cantidad from
>rev_accesos where empresa = 4 group by empresa, fecha;
>
>El resultado no es el que deseo pues aunque le formateo las salida de "fecha"
>para que me muestre sólo mes/año, al parecer los agrupa por días.
>
>
>-- empresa | fecha | cantidad
>---------+-------+----------
> 4 | 01/06 | 924
> 4 | 01/06 | 602
> 4 | 01/06 | 727
> 4 | 01/06 | 658
> 4 | 01/06 | 393
> 4 | 01/06 | 405
> 4 | 01/06 | 195
> 4 | 01/06 | 429
> 4 | 01/06 | 623
> 4 | 01/06 | 534
> 4 | 01/06 | 510
> 4 | 01/06 | 374
> 4 | 01/06 | 330
> 4 | 01/06 | 214
> 4 | 01/06 | 111
> 4 | 01/06 | 106
> 4 | 01/06 | 652
> 4 | 01/06 | 436
> 4 | 01/06 | 299
> 4 | 01/06 | 695
> 4 | 01/06 | 323
>...
>
>Estos son los campos de la tabla:
>
>id | integer | not null default
>nextval('rev_accesos_id_seq'::regclass)
> empresa | integer | not null
> equipo | character varying(40) |
> usuario | character varying(40) | not null
> programa | character varying(10) |
> tipo_acceso | character varying(80) | not null
> fecha | date | not null
> hora | time without time zone | not null
> fichero_accedido | character varying(200) |
> registro_accedido | character varying(200) |
> revision | timestamp without time zone |
>
>¿Alguien podría decirme como puedo hacer esto?.
>
>Gracias a todos.
>Saludos.
>Pablo
>------------
>Jabber: bruli(at)myjabber(to)net
>Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D


From: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
To: dkuroki(at)dbas(dot)com(dot)ar
Cc: Pablo Braulio <brulics(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 15:14:47
Message-ID: bc467bf39671b1095c1bb3e2d474fbe9@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


On Tue, 02 May 2006 15:01:10 +0000, <dkuroki(at)dbas(dot)com(dot)ar> wrote:
> y si pones:
>
>
> SELECT empresa, to_char(fecha, 'mm/yy') as fecha, count(*) as cantidad
> from
> rev_accesos where empresa = 4 group by empresa, to_char(fecha, 'mm/yy')

Acotando lo que mando Dorian, el problema parece ser que tienes una ambigüedad con la columna fecha. O sea, el planificador de la consulta no sabe bien cual fecha queres usar, si la fecha o el alias de la salida de to_char().

Podes probar tambien con (que es lo mismo que mando Dorian, pero con otra forma... como en Perl :-D):

SELECT empresa, to_char(fecha, 'mm/yy') as mesanio, count(*) as cantidad
FROM rev_accesos
WHERE empresa = 4 GROUP BY empresa, mesanio;

--
---------------------------------------------------------
Lic. Martín Marqués | SELECT 'mmarques' ||
Centro de Telemática | '@' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------


From: Pablo Braulio <brulics(at)gmail(dot)com>
To: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
Cc: dkuroki(at)dbas(dot)com(dot)ar, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 15:58:02
Message-ID: 200605021758.05900.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El Martes, 2 de Mayo de 2006 17:14, Martin Marques escribió:
> On Tue, 02 May 2006 15:01:10 +0000, <dkuroki(at)dbas(dot)com(dot)ar> wrote:
> > y si pones:
> >
> >
> > SELECT empresa, to_char(fecha, 'mm/yy') as fecha, count(*) as cantidad
> > from
> > rev_accesos where empresa = 4 group by empresa, to_char(fecha, 'mm/yy')
>
> Acotando lo que mando Dorian, el problema parece ser que tienes una
> ambigüedad con la columna fecha. O sea, el planificador de la consulta no
> sabe bien cual fecha queres usar, si la fecha o el alias de la salida de
> to_char().
>
> Podes probar tambien con (que es lo mismo que mando Dorian, pero con otra
> forma... como en Perl :-D):
>

Pues al final ha resultado ser más fácil de lo que parecía. Funciona de las
dos maneras.

La única pega de esto es que no se puede ordenar la salida de modo ascendente
o desdenciente. O mejor dicho, no lo he conseguido.

Gracias.
--
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D


From: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
To: Pablo Braulio <brulics(at)gmail(dot)com>
Cc: dkuroki(at)dbas(dot)com(dot)ar, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 16:33:21
Message-ID: 096fa9c75507bf55599db1f3cf717420@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


On Tue, 2 May 2006 17:58:02 +0200, Pablo Braulio <brulics(at)gmail(dot)com> wrote:
>
> La única pega de esto es que no se puede ordenar la salida de modo
> ascendente
> o desdenciente. O mejor dicho, no lo he conseguido.

Por que campo quieres ordenar? Que pasa si le pones el ORDER BY?

--
---------------------------------------------------------
Lic. Martín Marqués | SELECT 'mmarques' ||
Centro de Telemática | '@' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------


From: Pablo Braulio <brulics(at)gmail(dot)com>
To: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 16:39:41
Message-ID: 200605021839.44727.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El Martes, 2 de Mayo de 2006 18:33, Martin Marques escribió:
> Por que campo quieres ordenar? Que pasa si le pones el ORDER BY?

Por el campo de la fecha formateada, que he puesto antes.

SELECT to_char(fecha, 'mm/yyyy') as fech, to_char(revision, 'dd/mm/yyyy') as
fech2, count(*) as cantidad from rev_accesos where empresa = 4 group by
empresa, fech, fech2 order by fech desc;

y el resultado es este.

12/2005 1616
11/2005 2770
10/2005 2166
09/2005 931
08/2005 1974
07/2005 3852
06/2005 1284
02/2006 02/05/2006 1537
01/2006 2799

Como se trata de números, pues no lo ordena correctamente.
--
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D


From: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
To: Pablo Braulio <brulics(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 17:04:32
Message-ID: 32389c38deb5a281e6713614dd071d4b@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


On Tue, 2 May 2006 18:39:41 +0200, Pablo Braulio <brulics(at)gmail(dot)com> wrote:
>
> SELECT to_char(fecha, 'mm/yyyy') as fech, to_char(revision, 'dd/mm/yyyy')
> as
> fech2, count(*) as cantidad from rev_accesos where empresa = 4 group by
> empresa, fech, fech2 order by fech desc;
>
> y el resultado es este.
>
> 12/2005 1616
> 11/2005 2770
> 10/2005 2166
> 09/2005 931
> 08/2005 1974
> 07/2005 3852
> 06/2005 1284
> 02/2006 02/05/2006 1537
> 01/2006 2799
>
> Como se trata de números, pues no lo ordena correctamente.

Es que no se trata de numeros. La salida de to_char (como bien dice el nombre) transforma a cadena de caracteres, o sea que estas ordenando cadenas de caracteres. Por ende el ORDER BY salio bien!

Proba a ver que sale cuando pones "ORDER BY fecha" (recorda agregar el campo fecha a la lista de GROUP BY).

--
---------------------------------------------------------
Lic. Martín Marqués | SELECT 'mmarques' ||
Centro de Telemática | '@' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------


From: Pablo Braulio <brulics(at)gmail(dot)com>
To: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 17:16:19
Message-ID: 200605021916.24123.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El Martes, 2 de Mayo de 2006 19:04, Martin Marques escribió:
> Es que no se trata de numeros. La salida de to_char (como bien dice el
> nombre) transforma a cadena de caracteres, o sea que estas ordenando
> cadenas de caracteres. Por ende el ORDER BY salio bien!
>
> Proba a ver que sale cuando pones "ORDER BY fecha" (recorda agregar el
> campo fecha a la lista de GROUP BY).

En ese caso pasa lo mismo que al principio.

SELECT empresa, to_char(fecha, 'mm/yy') as fech, count(*) as cantidad from
rev_accesos where empresa = 5 group by empresa, fecha, fech order by fech,
fecha asc;

empresa | fech | cantidad
---------+-------+----------
5 | 01/06 | 24
5 | 01/06 | 246
5 | 01/06 | 735
5 | 01/06 | 239
5 | 01/06 | 459
5 | 01/06 | 2
5 | 01/06 | 71
5 | 01/06 | 11
5 | 01/06 | 54
5 | 01/06 | 52
5 | 01/06 | 49
5 | 01/06 | 23
5 | 01/06 | 9
5 | 01/06 | 4
5 | 01/06 | 17
5 | 01/06 | 11
5 | 01/06 | 509
5 | 01/06 | 141
5 | 01/06 | 3
5 | 01/06 | 123
5 | 01/06 | 17
5 | 02/06 | 22
5 | 02/06 | 66
5 | 02/06 | 38
5 | 02/06 | 25
...

Había pensado en hacer lo siguiente:

SELECT extract(month from fecha) || '-' || extract(year from fecha) as fech,
to_char(revision, 'dd/mm/yyyy') as fech2, count(*) as cantidad from
rev_accesos where empresa = 5 group by empresa, fech, fech2 order by fech
desc;

De este modo me saca el formato número_mes-año. Pero sigo con el mismo
problema al tratar de ordenar.

¿No existe ningún modo de poder sacar por nombre-año y ordenar?.
enero-2005
febrero-2005
marzo-2005
....
¿Es necesario crear una tabla con el número y nombre del mes para comparar?.

Gracias por la ayuda.
--
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D


From: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
To: Pablo Braulio <brulics(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 17:49:23
Message-ID: 6e80c17086420ba0f702dd331cbce1cc@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


On Tue, 2 May 2006 19:16:19 +0200, Pablo Braulio <brulics(at)gmail(dot)com> wrote:
>
> En ese caso pasa lo mismo que al principio.
>
> SELECT empresa, to_char(fecha, 'mm/yy') as fech, count(*) as cantidad from
>
> rev_accesos where empresa = 5 group by empresa, fecha, fech order by fech,
>
> fecha asc;

No me gusta nada lo que voy a escribir:

SELECT empresa to_char(fecha, 'mm/yy') as fech, count(*) AS cantidad
FROM (SELECT * FROM rev_accesos ORDER BY fecha ASC) subtab
GROUP BY empresa, fech;

--
---------------------------------------------------------
Lic. Martín Marqués | SELECT 'mmarques' ||
Centro de Telemática | '@' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------


From: Pablo Braulio <brulics(at)gmail(dot)com>
To: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 18:10:09
Message-ID: 200605022010.14640.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El Martes, 2 de Mayo de 2006 19:49, Martin Marques escribió:
> No me gusta nada lo que voy a escribir:
>
> SELECT empresa to_char(fecha, 'mm/yy') as fech, count(*) AS cantidad
> FROM (SELECT * FROM rev_accesos ORDER BY fecha ASC) subtab
> GROUP BY empresa, fech;

¿Que tiene de malo?.
--
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D


From: Pablo Braulio <brulics(at)gmail(dot)com>
To: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 18:13:20
Message-ID: 200605022013.23445.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El Martes, 2 de Mayo de 2006 19:49, Martin Marques escribió:
> No me gusta nada lo que voy a escribir:
>
> SELECT empresa to_char(fecha, 'mm/yy') as fech, count(*) AS cantidad
> FROM (SELECT * FROM rev_accesos ORDER BY fecha ASC) subtab
> GROUP BY empresa, fech;

¿Te refieres a que no te gusta la ejecución de una subconsulta?.
--
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D


From: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
To: Pablo Braulio <brulics(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 19:08:14
Message-ID: 74f79ef42f07f9a322038f867e6defab@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


On Tue, 2 May 2006 20:13:20 +0200, Pablo Braulio <brulics(at)gmail(dot)com> wrote:
> El Martes, 2 de Mayo de 2006 19:49, Martin Marques escribió:
>> No me gusta nada lo que voy a escribir:
>>
>> SELECT empresa to_char(fecha, 'mm/yy') as fech, count(*) AS cantidad
>> FROM (SELECT * FROM rev_accesos ORDER BY fecha ASC) subtab
>> GROUP BY empresa, fech;
>
> ¿Te refieres a que no te gusta la ejecución de una subconsulta?.

Si, pero mirandolo bien, no esta tan mal. :-)

--
---------------------------------------------------------
Lic. Martín Marqués | SELECT 'mmarques' ||
Centro de Telemática | '@' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------


From: Pablo Braulio <brulics(at)gmail(dot)com>
To: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 19:14:10
Message-ID: 200605022114.14789.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El Martes, 2 de Mayo de 2006 21:08, Martin Marques escribió:
> Si, pero mirandolo bien, no esta tan mal. :-)

Pero el problema del orden, no se soluciona.
--
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D


From: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
To: Pablo Braulio <brulics(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 19:31:25
Message-ID: 0807750da6eeb0173179f4ff19dc6348@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


On Tue, 2 May 2006 21:14:10 +0200, Pablo Braulio <brulics(at)gmail(dot)com> wrote:
> El Martes, 2 de Mayo de 2006 21:08, Martin Marques escribió:
>> Si, pero mirandolo bien, no esta tan mal. :-)
>
> Pero el problema del orden, no se soluciona.

????

Con la consulta que te mande ultima[1] primero ordena los datos de la tabla y luego efectua el conteo con las agrupaciones pertinentes. Esto sucede porque una de las columnas que estas usando para agupar es una sub-parte de la columna que se usa para ordenar.

[1]: http://archives.postgresql.org/pgsql-es-ayuda/2006-05/msg00035.php

--
---------------------------------------------------------
Lic. Martín Marqués | SELECT 'mmarques' ||
Centro de Telemática | '@' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------


From: Juan Martínez <jeugenio(at)umcervantes(dot)cl>
To: Pablo Braulio <brulics(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 20:28:36
Message-ID: 1146601717.7355.23.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El mar, 02-05-2006 a las 16:46 +0200, Pablo Braulio escribió:
> Hola a todos.
>
> Estoy tratando de hacer una consulta para extraer el número de registros
> agrupando por el mes. Pero no lo consigo.
>
> Esta es la consulta que hago.
>
> SELECT empresa, to_char(fecha, 'mm/yy') as fecha, count(*) as cantidad from
> rev_accesos where empresa = 4 group by empresa, fecha;

Mmm... si dices que empresa=4 no es necesario incluirla en el group by.
Prueba con eso, deberia resultarte.

> El resultado no es el que deseo pues aunque le formateo las salida de "fecha"
> para que me muestre sólo mes/año, al parecer los agrupa por días.
>
>
> -- empresa | fecha | cantidad
> ---------+-------+----------
> 4 | 01/06 | 924
> 4 | 01/06 | 602
> 4 | 01/06 | 727
> 4 | 01/06 | 658
> 4 | 01/06 | 393
> 4 | 01/06 | 405
> 4 | 01/06 | 195
> 4 | 01/06 | 429
> 4 | 01/06 | 623
> 4 | 01/06 | 534
> 4 | 01/06 | 510
> 4 | 01/06 | 374
> 4 | 01/06 | 330
> 4 | 01/06 | 214
> 4 | 01/06 | 111
> 4 | 01/06 | 106
> 4 | 01/06 | 652
> 4 | 01/06 | 436
> 4 | 01/06 | 299
> 4 | 01/06 | 695
> 4 | 01/06 | 323
> ...
>
> Estos son los campos de la tabla:
>
> id | integer | not null default
> nextval('rev_accesos_id_seq'::regclass)
> empresa | integer | not null
> equipo | character varying(40) |
> usuario | character varying(40) | not null
> programa | character varying(10) |
> tipo_acceso | character varying(80) | not null
> fecha | date | not null
> hora | time without time zone | not null

yo usaria un campo timestamp para fecha y hora. Ahorra espacio.

> fichero_accedido | character varying(200) |
> registro_accedido | character varying(200) |
> revision | timestamp without time zone |
>
> ¿Alguien podría decirme como puedo hacer esto?.
>
> Gracias a todos.
> Saludos.
> Pablo
> ------------
> Jabber: bruli(at)myjabber(to)net
> Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D


From: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
To: Juan Martínez <jeugenio(at)umcervantes(dot)cl>
Cc: Pablo Braulio <brulics(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-02 20:47:19
Message-ID: d25e09db22dde1caef28cef9a56af440@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


On Tue, 02 May 2006 16:28:36 -0400, Juan Martínez <jeugenio(at)umcervantes(dot)cl> wrote:
> El mar, 02-05-2006 a las 16:46 +0200, Pablo Braulio escribió:
>>
>> Esta es la consulta que hago.
>>
>> SELECT empresa, to_char(fecha, 'mm/yy') as fecha, count(*) as cantidad
> from
>> rev_accesos where empresa = 4 group by empresa, fecha;
>
> Mmm... si dices que empresa=4 no es necesario incluirla en el group by.
> Prueba con eso, deberia resultarte.

Tiene que ponerla en el GROUP BY ya que es una de las columnas que selecciona.

--
---------------------------------------------------------
Lic. Martín Marqués | SELECT 'mmarques' ||
Centro de Telemática | '@' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------


From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: "Pablo Braulio" <brulics(at)gmail(dot)com>
Cc: "Martin Marques" <martin(at)bugs(dot)unl(dot)edu(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-03 04:59:21
Message-ID: c2d9e70e0605022159p6ad29188i433545799a9cdf28@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 5/2/06, Pablo Braulio <brulics(at)gmail(dot)com> wrote:
> El Martes, 2 de Mayo de 2006 21:08, Martin Marques escribió:
> > Si, pero mirandolo bien, no esta tan mal. :-)
>
> Pero el problema del orden, no se soluciona.
> --
> Saludos.
> Pablo

que tal si pruebas este ORDER BY? del resto del select no, copie uno
de los que alguien envio...

SELECT extract(month from fecha) || '-' || extract(year from fecha) as fech,
to_char(revision, 'dd/mm/yyyy') as fech2, count(*) as cantidad
FROM rev_accesos
WHERE empresa = 5
GROUP BY empresa, fech, fech2
ORDER BY extract(year from fecha) desc, extract(month from fecha) desc;

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook


From: Pablo Braulio <brulics(at)gmail(dot)com>
To: "Jaime Casanova" <systemguards(at)gmail(dot)com>
Cc: "Martin Marques" <martin(at)bugs(dot)unl(dot)edu(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-03 06:16:59
Message-ID: 200605030817.05277.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El Miércoles, 3 de Mayo de 2006 06:59, Jaime Casanova escribió:
> que tal si pruebas este ORDER BY? del resto del select no, copie uno
> de los que alguien envio...
>
> SELECT extract(month from fecha) || '-' || extract(year from fecha) as
> fech, to_char(revision, 'dd/mm/yyyy') as fech2, count(*) as cantidad FROM
> rev_accesos
> WHERE empresa = 5
> GROUP BY empresa, fech, fech2
> ORDER BY extract(year from fecha) desc, extract(month from fecha) desc;

Gracias Jaime, no había pensado en hacer extract en un order. Pero me muestra
el siguiente error.

ERROR: la columna <<rev_accesos.fecha>> debe aparecer en la cl?usula GROUP BY
o ser usada en una funci?n de agregaci?n

Si pongo fecha en el group by, no me sale lo deseado. Es mas, no lo agrupa.
--
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Pablo Braulio <brulics(at)gmail(dot)com>
Cc: Jaime Casanova <systemguards(at)gmail(dot)com>, Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Contar registros insertados por mes.
Date: 2006-05-03 13:00:51
Message-ID: 20060503130050.GD18026@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Pablo Braulio escribió:
> El Miércoles, 3 de Mayo de 2006 06:59, Jaime Casanova escribió:
> > que tal si pruebas este ORDER BY? del resto del select no, copie uno
> > de los que alguien envio...
> >
> > SELECT extract(month from fecha) || '-' || extract(year from fecha) as
> > fech, to_char(revision, 'dd/mm/yyyy') as fech2, count(*) as cantidad FROM
> > rev_accesos
> > WHERE empresa = 5
> > GROUP BY empresa, fech, fech2
> > ORDER BY extract(year from fecha) desc, extract(month from fecha) desc;
>
> Gracias Jaime, no había pensado en hacer extract en un order. Pero me muestra
> el siguiente error.
>
> ERROR: la columna <<rev_accesos.fecha>> debe aparecer en la cl?usula GROUP BY
> o ser usada en una funci?n de agregaci?n

Entonces en lugar de agrupar por fech, agrupa por
extract(year from fecha), extract(month from fecha)

SELECT extract(month from fecha) || '-' || extract(year from fecha) as
fech, to_char(revision, 'dd/mm/yyyy') as fech2, count(*) as cantidad
FROM rev_accesos
WHERE empresa = 5
GROUP BY extract(year from fecha), extract(month from fecha), revision
ORDER BY extract(year from fecha) desc, extract(month from fecha) desc;

> Si pongo fecha en el group by, no me sale lo deseado. Es mas, no lo agrupa.

Si lo agrupa, pero por dia.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support