Ho una tabella contenente più colonne e voglio verificare il valore di una colonna, selezionare le righe dopo quel valore di colonna fino a quando non viene visualizzato un valore di colonna separato. Ho provato a usare BETWEEN, ma se i valori di colonna sono numeri interi cerca solo numeri tra i numeri interi.
Ad esempio, se ho una tabella come questa:
valore tempo id t1 12:00 PM 15 T1 12:02 4 t1 12:03 PM 7 T1 12:05 16 t5 12:10 PM 250 t5 12:15 PM 15 t8 11:00 AM 15 t8 3:00 PM 2 t8 15:05 100 T2 19:00 15 T2 19:01 16 t15 5:00 AM 35
Vorrei ottenere le righe tra i valori di 15 e 16. Fondamentalmente, se potessi ordinare per id, quindi time, e raccogliere le righe dopo che appare 15 finché non vi è un valore di 16 all'interno di quello stesso id. Se non esiste un valore 16, ad esempio vorrei le successive 100 righe e quindi cerco il valore successivo di 15.
Vorrei che la query restituisse questo:
valore tempo id t1 12:00 PM 15 T1 12:02 4 t1 12:03 PM 7 T1 12:05 16 T2 19:00 15 T2 19:01 16 t5 12:15 PM 15 t8 11:00 AM 15 t8 3:00 PM 2 t8 15:05 100
Potrebbe essere fonte di confusione. Ho provato:
SELECT * FROM table WHERE value BETWEEN '15' AND '16' ORDER BY id, time
come punto di partenza, ma restituisce solo righe con valori di 15 o 16 perché sono numeri interi.
Voglio ordinare la tabella per idallora time. Queste voci vengono aggiunte automaticamente tramite un altro sistema, quindi sto cercando di interrogare la tabella per intervalli di valori specifici.
Qualche idea?
Una precisazione:
Se avessi le righe con 15, 1, 16, 7, 15, 2, 16la stessa id, vorrei entrambe le "isole": 15, 1, 16, 15, 2, 16.