SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Posiadanie SQLite

Podsumowanie :w tym samouczku dowiesz się, jak używać SQLite HAVING klauzula określająca warunek filtrowania dla grupy lub agregatu.

Wprowadzenie do SQLite HAVING klauzula

SQLite HAVING klauzula jest opcjonalną klauzulą ​​SELECT oświadczenie. HAVING klauzula określa warunek wyszukiwania dla grupy.

Często używasz HAVING klauzula z GROUP BY klauzula. GROUP BY klauzula grupuje zestaw wierszy w zestaw wierszy lub grup podsumowań. Następnie HAVING klauzula filtruje grupy na podstawie określonego warunku.

Jeśli używasz HAVING klauzula, musisz dołączyć GROUP BY klauzula; w przeciwnym razie otrzymasz następujący błąd:

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

Zauważ, że HAVING klauzula jest stosowana po GROUP BY klauzula, natomiast WHERE klauzula jest stosowana przed GROUP BY klauzula.

Poniższe ilustruje składnię HAVING klauzula:

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)

W tej składni HAVING klauzula ocenia search_condition dla każdej grupy jako wyrażenie logiczne. Uwzględnia grupę w końcowym zestawie wyników tylko wtedy, gdy ocena jest prawdziwa.

SQLite HAVING przykłady klauzul

Użyjemy tracks tabeli w przykładowej bazie danych do demonstracji.

Aby znaleźć liczbę utworów dla każdego albumu, użyj GROUP BY klauzula w następujący sposób:

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

Wypróbuj

Aby znaleźć numery utworów dla albumu o identyfikatorze 1, dodajemy HAVING klauzula do następującego oświadczenia:

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

Wypróbuj

Wspominaliśmy AlbumId kolumna w HAVING klauzula.

Aby znaleźć albumy, które mają liczbę utworów od 18 do 20, użyj funkcji agregacji w HAVING klauzula, jak pokazano w następującym oświadczeniu:

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)

Wypróbuj

SQLite HAVING klauzula z INNER JOIN przykład

Poniższa instrukcja wysyła zapytanie o dane z tracks i albums tabele używające sprzężenia wewnętrznego w celu znalezienia albumów o łącznej długości większej niż 60 000 000 milisekund.

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)

Wypróbuj

W tym samouczku nauczyłeś się korzystać z SQLite HAVING klauzula określająca warunek wyszukiwania dla grup.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Formatuj liczby z przecinkiem w SQLite

  2. Jak stworzyć natywną aplikację na Androida działającą w trybie offline?

  3. Android Studio 3.0 canary 1:błąd składni SQL

  4. Jak korzystać z polecenia zrzutu SQLite

  5. Pobieranie kolumny z .sqlite zawierającej wiele tabel z wieloma kolumnami