Filtern einer Hive-Tabelle nach Spaltenwert
Der häufigste Anwendungsfall für das Filtern von Hive-Tabellen besteht darin, Zeilen basierend auf den Werten in einer oder mehreren Spalten auszuwählen. Dies kann mithilfe der WHERE
-Klausel in einer Hive-SQL-Abfrage erreicht werden.
Grundlegendes Filtern
Die grundlegende Syntax für das Filtern einer Hive-Tabelle nach einem Spaltenwert lautet:
SELECT column1, column2,...
FROM table_name
WHERE column_name = 'value';
Hier ist ein Beispiel:
SELECT *
FROM employees
WHERE department = 'Sales';
Diese Abfrage gibt alle Zeilen aus der employees
-Tabelle zurück, in denen die department
-Spalte den Wert 'Sales'
hat.
Kombiniertes Filtern
Sie können auch mehrere Bedingungen mithilfe logischer Operatoren wie AND
, OR
und NOT
in der WHERE
-Klausel kombinieren:
SELECT column1, column2,...
FROM table_name
WHERE condition1 AND condition2;
SELECT column1, column2,...
FROM table_name
WHERE condition1 OR condition2;
SELECT column1, column2,...
FROM table_name
WHERE NOT condition;
Beispiel:
SELECT *
FROM employees
WHERE department = 'Sales' AND salary > 50000;
Diese Abfrage gibt alle Zeilen aus der employees
-Tabelle zurück, in denen die department
'Sales'
ist und das salary
größer als 50000
ist.
Filtern mit NULL-Werten
Die Behandlung von NULL
-Werten in der WHERE
-Klausel erfordert besondere Aufmerksamkeit. Um auf NULL
-Werte zu prüfen, können Sie die Syntax IS NULL
oder IS NOT NULL
verwenden:
SELECT column1, column2,...
FROM table_name
WHERE column_name IS NULL;
SELECT column1, column2,...
FROM table_name
WHERE column_name IS NOT NULL;
Beispiel:
SELECT *
FROM employees
WHERE commission IS NOT NULL;
Diese Abfrage gibt alle Zeilen aus der employees
-Tabelle zurück, in denen die commission
-Spalte nicht NULL
ist.
Filtern mit Bereichsbedingungen
Sie können auch Daten basierend auf einem Wertebereich mithilfe der BETWEEN
-Klausel filtern:
SELECT column1, column2,...
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
Beispiel:
SELECT *
FROM employees
WHERE salary BETWEEN 50000 AND 100000;
Diese Abfrage gibt alle Zeilen aus der employees
-Tabelle zurück, in denen das salary
zwischen 50000
und 100000
liegt.