English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SQLite GROUP BY La cláusula se utiliza junto con la consulta SELECT para agrupar datos idénticos.
La cláusula GROUP BY debe seguir la cláusula WHERE en la consulta SELECT y debe estar antes de la cláusula ORDER BY.
A continuación se muestra la sintaxis básica de la cláusula GROUP BY. La cláusula GROUP BY debe seguir la cláusula WHERE y, si se utiliza la cláusula ORDER BY, debe estar antes de esta.
SELECT column-lista FROM table_name WHERE [ condiciones ] GROUP BY column1, column2....columnN ORDER BY column1, column2....columnN
Puede usar múltiples columnas en la cláusula GROUP BY. Asegúrese de que cualquier columna que se utilice para agrupar-disponible en la lista.
Consideremos la tabla COMPANY con los siguientes registros.
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Si desea saber el total de salarios de cada cliente, la consulta GROUP BY será como sigue-
sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME;
Resultados de salida:
NAME SUM(SALARY) ---------- ----------- Allen 15000.0 David 85000.0 James 10000.0 Kim 45000.0 Mark 65000.0 Paul 20000.0 Teddy 20000.0
Ahora, utilicemos la siguiente sentencia INSERT para crear tres nuevos registros en la tabla COMPANY.
INSERT INTO COMPANY VALUES (8, 'Paul', 24, 'Houston', 20000.00 ); INSERT INTO COMPANY VALUES (9, 'James', 44, 'Norway', 5000.00 ); INSERT INTO COMPANY VALUES (10, 'James', 45, 'Texas', 5000.00 );
Ahora, nuestra tabla tiene registros con nombres repetidos.
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 8 Paul 24 Houston 20000.0 9 James 44 Norway 5000.0 10 James 45 Texas 5000.0
Una vez más, utilicemos la misma sentencia para agrupar todos los registros por la columna NAME, como se muestra a continuación:
sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME;
Esto producirá el siguiente resultado.
NAME SUM(SALARY) ---------- ----------- Allen 15000 David 85000 James 20000 Kim 45000 Mark 65000 Paul 40000 Teddy 20000
Vamos a usar las subordinadas ORDER BY y GROUP BY de la siguiente manera-
sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME DESC;
Esto producirá el siguiente resultado.
NAME SUM(SALARY) ---------- ----------- Teddy 20000 Paul 40000 Mark 65000 Kim 45000 James 20000 David 85000 Allen 15000