2016-12-06 3 views
-1
select client#, 
     SUM(ticketpurchase.totalamount) value 
from ops$yyang00.ticketpurchase, 
    ops$yyang00.performance, 
    ops$yyang00.production 
where ticketpurchase.per# = performance.per# and 
     performance.P#=production.P# and 
     season#=1 
group by client# 
order by value desc; 

Wie für jede Jahreszeit durch Ticketverkaufswert ein Wert mehrere Client in dieser Top-5-Client wählen ..Auswahl Top-5-Client aus dem Fahrscheinverkauf mit mehreren Datensätzen

+1

Welche Version von SQL verwenden Sie (z. SQL Server, MySQL)? Können Sie uns Ihre erwartete Leistung zeigen? –

+1

Welche RDBMS verwenden Sie? Bitte editieren Sie Ihre Frage und fügen Sie das Tag hinzu (SQL Server, MySQL ... etc) – Sami

+0

ANSI SQL: Fügen Sie 'FETCH FIRST 5 ROWS ONLY' am Ende hinzu. – jarlh

Antwort

0

Bitte versuchen Sie diesen Code für SQL Server umfassen kann .

Select * from (
    select client#,SUM(ticketpurchase.totalamount) value, 
    row_number() over(order by SUM(ticketpurchase.totalamount)) rowNo 
    from ops$yyang00.ticketpurchase, 
     ops$yyang00.performance, 
     ops$yyang00.production 
    where ticketpurchase.per# = performance.per# and 
      performance.P#=production.P# and 
      season#=1 
    group by client# 
) as t 
where rowNo <=5 
0

Try this: (Wenn Sie SQL Server verwenden)

select top 5 from (
        select client#, 
          SUM(ticketpurchase.totalamount) value 
        from ops$yyang00.ticketpurchase, 
         ops$yyang00.performance, 
         ops$yyang00.production 
        where ticketpurchase.per# = performance.per# and 
          performance.P#=production.P# and 
          season#=1 
        group by client#) 
order by value desc 

Hinweis:Wenn Sie die mindestens 5 Datensätze wollen, entfernen diedescausorder by

Verwandte Themen