Wie vergleiche ich mehrere Spalten mit mehreren Feldarrays in Select query?

Bipin Vayalu

Ich stecke ein bisschen bei der Erstellung von Abfragen auf dem API-Server fest. Ich möchte nur mit geänderten Trackdaten antworten. Ich habe eine tracksTabelle mit wenigen Spalten wie dieser.

tracks(id, audio_fingerprint, name, creation_date, modified_date)

Jetzt möchte ich nur noch Titel, die nach dem letzten abgerufenen Zeitstempel aktualisiert werden (Array von Audio-Fingerabdrücken und zuletzt abgerufenem Zeitstempel, die als API-Anforderungsparameter übergeben wurden).

SELECT * from tracks WHERE (audio_fingerprint, modified_date) IN (Array(audioFingerprint, > lastFetchedTimestamp));

(^^ Es ist eine ungültige Abfrage, die nur zum Verständnis verwendet wird).

Vielen Dank

klin

Beispieldaten:

create table tracks (audio_fingerprint text, modified_date date);
insert into tracks values
    ('a', '2017-01-10'),
    ('b', '2017-01-10'),
    ('a', '2017-02-10'),
    ('b', '2017-02-10'),
    ('c', '2017-02-01');

Platzieren Sie Ihre Argumente in einer withAbfrage und verknüpfen Sie sie mit Ihrer Tabelle:

with given_values (fingerprint, last_fetched) as (
values
    ('a', '2017-01-01'::date),
    ('b', '2017-02-01')
)

select * 
from tracks t
join given_values v
on t.audio_fingerprint = v.fingerprint
and t.modified_date > v.last_fetched;

 audio_fingerprint | modified_date | fingerprint | last_fetched 
-------------------+---------------+-------------+--------------
 a                 | 2017-01-10    | a           | 2017-01-01
 a                 | 2017-02-10    | a           | 2017-01-01
 b                 | 2017-02-10    | b           | 2017-02-01
(3 rows)

Anstelle von CTE können Sie auch eine abgeleitete Tabelle verwenden:

select * 
from tracks t
join (
    values
        ('a', '2017-01-01'::date),
        ('b', '2017-02-01')
    ) v(fingerprint, last_fetched)
on t.audio_fingerprint = v.fingerprint
and t.modified_date > v.last_fetched;

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Wie drucke ich mehrere Zeilen mit mehreren Spalten in einer Vorlage?

Wie lösche ich mehrere Spalten mit mehreren Mustern?

Wie vergleiche ich den Wert einer Spalte mit mehreren Werten in anderen Spalten?

Wie vergleiche ich Spalten mit Arrays in BigQuery?

Wie vergleiche ich mehrere Felder mit SQL?

Wie vergleiche ich mehrere Stringlängen zwischen Spalten mit einer R-Datentabelle?

Wie vergleiche ich mit Pandas einen Wert einer einzelnen Spalte über mehrere Spalten in derselben Zeile?

Konvertieren Sie Spalten in mehrere Datenzeilen in Zeilen mit mehreren Spalten in Power Query – ich brauche das in Power Query

Wie vergleiche ich zwei verschiedene Tabellen basierend auf mehreren Spalten?

Wie vergleiche ich mehrere Werte aus verschiedenen Spalten in Excel?

Wie wähle ich mehrere Zeilen mit mehreren Spalten aus, ohne mehrere Unterabfragen zu verwenden?

Wie teile ich diese Spalte mit mehreren Datentypen in [['Bildung', 'Ph.D., MIT'] ... in mehrere Spalten auf?

Wie vergleiche ich eine Zeichenfolge mit mehreren Literalen in einem Makefile?

Wie vergleiche ich die Texteingabe mit mehreren Zeichenfolgen?

Spark: Wie konvertiere ich mehrere Zeilen in eine einzelne Zeile mit mehreren Spalten?

Wie kann ich mehrere Spalten (Jahre) mit mehreren Zeilen (Variablen) umschalten?

Wie kann ich mit psycopg2 mehrere Spalten in mehreren Zeilen in postgresql aktualisieren?

Wie vergleiche ich alle Spalten mit einer Spalte in Pandas?

Wie vergleiche ich Dateien mit verschiedenen Spalten in Unix?

Wie vergleiche ich Spalten mit Zeichenfolgen und Ganzzahlen? Python Pandas

Wie vergleiche ich zwei Spalten mit Groß-/Kleinschreibung in Excel?

Datenrahmen: Wie vergleiche ich zwei Spalten mit Zeichenfolgenwerten?

Wie vergleiche ich mehrere Eingabe-Checkbox-Werte mit forloop?

Wie vergleiche ich mehrere Linq-Ausdrücke mit Logik?

Wie vergleiche ich mehrere Variablen mit demselben Wert (leer) in Perl?

Wie vergleiche ich mehrere Zeilen?

Wie vergleiche ich Spalten in Pandas, während mehrere verschiedene Spalten abgeglichen werden?

Wie sortiere ich mehrere Spalten mit JavaScript?

Vergleiche mehrere Spalten mit Numpy und Panda