Der Datentyp des Operand-Datentyps ist für den avg-Operator ungültig ...?

7

Wie kann ich avg (Zeit (4)) in der folgenden Abfrage:

%Vor%

Ich erhalte den folgenden Fehler:

  

Der Datentyp des Operand-Datentyps ist für den avg-Operator ungültig.

Dauer ist Typ Zeit (4) wie:

%Vor%     
JaJ 03.08.2012, 00:50
quelle

4 Antworten

11

Sie können DateDiff( ms, '00:00:00', e.Duration ) verwenden, um die Zeit in eine ganze Zahl von Millisekunden umzuwandeln. Verwenden Sie das für Ihr Aggregat und konvertieren Sie das Ergebnis dann zurück, z. Cast( DateAdd( ms, 1234, '00:00:00' ) as Time ) .

    
HABO 03.08.2012, 01:42
quelle
7

Verbesserung von HABO Antwort:

%Vor%     
Rafi 30.01.2013 14:39
quelle
1

Nun scheint time ein ungültiger Typ für die Methode avg() zu sein. Eine Liste der gültigen Datentypen finden Sie hier .

Es scheint auch so, als ob Sie eine Gruppe von Werten benötigen, die top 10 mit Ihrer aktuellen Anfrage überflüssig machen würden.

    
Nick Rolando 03.08.2012 00:57
quelle
1

Ergänzung zu den Antworten von HABO und Rafi.

Für meinen Fall musste ich den Wert des DATEDIFF zu einem bigint umwandeln, weil mein Wert zu groß wurde und einen arithmetischen Überlauffehler verursachte.

%Vor%     
Hammafer 02.04.2018 20:24
quelle

Tags und Links