SQLite
 sql >> база данни >  >> RDS >> SQLite

Наличие на SQLite

Резюме :в този урок ще научите как да използвате SQLite HAVING клауза за определяне на условие за филтриране за група или агрегат.

Въведение в SQLite HAVING клауза

SQLite HAVING клаузата е незадължителна клауза на SELECT изявление. HAVING клаузата определя условие за търсене за група.

Често използвате HAVING клауза с GROUP BY клауза. GROUP BY клауза групира набор от редове в набор от обобщени редове или групи. След това HAVING клаузата филтрира групи въз основа на определено условие.

Ако използвате HAVING клауза, трябва да включите GROUP BY клауза; в противен случай ще получите следната грешка:

Error: a GROUP BY clause is required before HAVINGCode language: JavaScript (javascript)

Имайте предвид, че HAVING клаузата се прилага след GROUP BY клауза, докато WHERE Клаузата се прилага преди GROUP BY клауза.

Следното илюстрира синтаксиса на HAVING клауза:

SELECT
	column_1, 
        column_2,
	aggregate_function (column_3)
FROM
	table
GROUP BY
	column_1,
        column_2
HAVING
	search_condition;Code language: SQL (Structured Query Language) (sql)

В този синтаксис, HAVING клауза оценява search_condition за всяка група като булев израз. Включва група в крайния набор от резултати само ако оценката е вярна.

SQLite HAVING примери за клаузи

Ще използваме tracks таблица в примерната база данни за демонстрация.

За да намерите броя на песните за всеки албум, използвате GROUP BY клауза, както следва:

SELECT
	albumid,
	COUNT(trackid)
FROM
	tracks
GROUP BY
	albumid;Code language: SQL (Structured Query Language) (sql)

Опитайте го

За да намерим номерата на песните за албума с идентификатор 1, добавяме HAVING клауза към следното изявление:

SELECT
	albumid,
	COUNT(trackid)
FROM
	tracks
GROUP BY
	albumid
HAVING albumid = 1;

Опитайте го

Позовахме се на AlbumId колона в HAVING клауза.

За да намерите албуми, които имат брой песни между 18 и 20, използвате функцията за обобщаване в HAVING клауза, както е показано в следното изявление:

SELECT
   albumid,
   COUNT(trackid)
FROM
   tracks
GROUP BY
   albumid
HAVING 
   COUNT(albumid) BETWEEN 18 AND 20
ORDER BY albumid;Code language: SQL (Structured Query Language) (sql)

Опитайте го

SQLite HAVING клауза с INNER JOIN пример

Следният израз изисква данни от tracks и albums таблици, използващи вътрешно свързване, за да намерите албуми с обща дължина по-голяма от 60 000 000 милисекунди.

SELECT
	tracks.AlbumId,
	title,
	SUM(Milliseconds) AS length
FROM
	tracks
INNER JOIN albums ON albums.AlbumId = tracks.AlbumId
GROUP BY
	tracks.AlbumId 
HAVING
	length > 60000000;Code language: SQL (Structured Query Language) (sql)

Опитайте го

В този урок научихте как да използвате SQLite HAVING клауза за определяне на условията за търсене на групи.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite Sum() срещу Total():Каква е разликата?

  2. Как мога да разделя дълъг, единичен SQLiteOpenHelper на няколко класа, по един за всяка таблица

  3. Изключение на SQLite, докато се опитвате да изтриете ред

  4. Как да промените подканата на командния ред в SQLite

  5. Създайте книга за контакти с Python, PyQt и SQLite