2016-12-08 1 views
0

Ich habe eine Datenbank mit Daten, die x verschiedene Filter und einen Winkel zwischen -180 bis 180 hat. Ich möchte überprüfen, ob ein bestimmter Filter mindestens einen Datenpunkt in einem Bereich von 5 Grad hat. Also ja oder 1, wenn ein Datenpunkt zwischen -180 und -175 für Filter 1.SQL-Prüfung, wenn Daten abgetastet werden

Ich habe es geschafft, die Menge der Artikel pro Filter zu zählen insgesamt

'SELECT COUNT(data),filt FROM database GROUP BY filt ORDER BY filt' 

Dies gibt:

(11093, 'R1') 
(24067, 'R2') 
(12234, 'R3') 
(4, 'RH2') 
(12888, 'SIC') 
(7557, 'SI') 
(1570, 'SI2') 
(2922, 'SI3') 

Aber ich habe keine Ahnung, wie man den nächsten Schritt zu wagen

+0

'max (Fall wenn filt = 'filtervalue' und Datenpunkt zwischen -180 und -175 dann 1 Ende) 'bedingte Aggregation mit einem max? Angenommen, 'filtervalue' wird auf den Filter gesetzt, den Sie überprüfen möchten, und Datenpunkt ist der Spaltenname, der den Grad enthält. Frage ist jedoch unklar, da wir nicht alle Feldnamen der Tabelle 'Datenbank' ungeraden Tabellennamen kennen ... – xQbert

Antwort

0

Hier ist eine Lösung, die auf der Tatsache beruht, dass die Punkte sind immer im Bereich -180 bis +180

SELECT distinct ((id -180) div -355) as d, filt 
FROM database 
WHERE ((id -180) div -355) = 1 
ORDER BY filt; 

Der Punkt ist, dass nur die Werte -175 bis -180 d = 1 ergeben.

Verwandte Themen