Ich habe eine Testberichttabelle, die nach jedem Testlauf eine Zeile schreibt.Versuch, eine Teradata-Ansicht zu erstellen, um zu aggregieren, wie lange Zeilen einer bestimmten ID einen bestimmten Wert hatten
Lassen Sie uns sagen, dass dies die Daten:
| main_id | status | date |
|---------|--------|---------|
| 123 | pass | Jan 1st |
| 123 | fail | Jan 2nd |
| 123 | fail | Jan 3rd |
| 123 | fail | Jan 4th |
ich einen Blick machen wollen, dass für jeden Test, listet, wie es andernfalls schon lange hat.
Wesentlichen die entsprechende Zeile für die obigen Daten würde wie folgt aussehen:
| main_id | days_failing |
|---------|--------------|
| 123 | 3 |
Mit Teradata SQL, wie könnte jede Zeile in der Quelltabelle überprüfen, für den letzten Erfolg suchen, und dann alles zusammenzufassen die nachfolgenden Fehler?
Bearbeiten: Beachten Sie, dass es viele verschiedene "main_id" s in der Quellentabelle geben würde, würde ich 1 Zeile in der Ansicht für jeden eindeutigen fehlgeschlagenen Test in der Quellentabelle benötigen.
Dank
Hmmm ... diese (Option 1) wird immer in der Nähe, dass es nur die Zeilen mit einem Defekt tut wählen, aber es das days_failing Feld wird mit 1, egal wie viele Tage nur bevölkert von fehlgeschlagene Instanzen hat ein Test. Dies kann wichtig sein, aber mein Datumsfeld ist eigentlich ein Zeitstempel, ich habe es einfach für diese Frage gestrafft. – user1029167
Ihr zweites Beispiel hat perfekt funktioniert, danke! – user1029167
@ user1029167, Die Abfrage zählt die Anzahl der Zeilen nach dem letzten Durchlauf. Es macht nicht, seit dem bekommst du immer 1, es sei denn, das sind ja deine Daten –