2016-06-01 6 views
0

ich eine Abfrage habe, wie untenGraf mit unterschiedlicher Gruppe von in einer select-Anweisung verwendet

select sum(amount)/count(id) from tabel1 where name ='sam'; 

gezeigt habe ich eine Tabelle wie diese

name id transaction_type_id transaction_type 
sam 1 23     direct 
sam 1 56     direct 
sam 1  21    indirect 
sam 1  34    indirect 

, als ich zählen kann (id) ist Antwort zu bekommen als '4', aber ich möchte, dass es '2' ist, weil es 2 transaction_type als 'direkt und indirekt' hat. Bitte hilf mir.

Dank

+1

'count (distinct TRANSACTION_TYPE)'? – jarlh

+2

Was ist "Menge" Spalte? woher kam es? – sagi

+0

Bitte zeigen Sie Ihre erwarteten Ergebnisse. Ich verstehe nicht "ich will, dass es 2 ist, weil es 2 transaction_type" hat. Möchten Sie verschiedene Transaktionstypen zählen? Oder sprechen Sie von der durchschnittlichen Anzahl von IDs pro Transaktionstyp? Oder was noch? Wäre es eine andere "Zählung", wenn es drei Einträge für "direkt" anstelle von zwei geben würde? –

Antwort

0

Versuchen Sie folgendes:

select sum(amount)/count(distinct transaction_type) 
from tabel1 
where name ='sam' 

Dies wird eine Anzahl von 2 zurückkehren, da es nur 2deutlichetransaction_type Werte sind.

0

Versuchen zu verwenden:

select sum(amount)/count(distinct transaction_type) from tabel1 where name ='sam'; 
0

starten:

SELECT 
    SUM(amount)/COUNT(id) 
FROM tabel1 
WHERE 
    name = 'sam' 
GROUP BY 
    transaction_type;