Definitivamente soy un novato con SQL, he estado rompiendo la cabeza para escribir una consulta compleja con la siguiente estructura de la tabla en PostgreSQL:consulta con subconsulta recuento, combinación interna y el grupo
CREATE TABLE reports
(
reportid character varying(20) NOT NULL,
userid integer NOT NULL,
reporttype character varying(40) NOT NULL,
)
CREATE TABLE users
(
userid serial NOT NULL,
username character varying(20) NOT NULL,
)
El objetivo de la consulta es obtener la cantidad de tipos de informes por usuario y mostrarla en una columna. Hay tres tipos diferentes de informes.
una simple consulta con el grupo por va a resolver el problema, pero mostrarlo en diferentes filas:
select count(*) as Amount,
u.username,
r.reporttype
from reports r,
users u
where r.userid=u.userid
group by u.username,r.reporttype
order by u.username
¿Qué salida esperas? – Ruben
Hay solo tres tipos diferentes de informes: "tipo1" "tipo2" "tipo3" y la consulta debe mostrar en una fila el nombre de usuario, la cantidad de informes "tipo1", la cantidad de informes "tipo2" y la cantidad de " type3 "informes. Perdón por la confusión –
En la consulta de su ejemplo, usted usa c.userid y c.reporttype, pero ¿de dónde viene esa c? No ha hecho ningún alias llamado c o una tabla llamada c. – Ruben