2012-04-07 24 views
0

Ich habe Website der Anwendung, die Anwendungen online verkauft.auf der Homepage Ich möchte Top-10-Produkte basierend auf der Anzahl der Zeiten, die sie heruntergeladen haben.I versucht, Produkt-IDs von SQL Server abzurufen Datenbank 2008.aber die Abfrage Größe steigt, wenn ich von hohen Download-Zähler Wert zu niedrigeren Wert.Weil ich eine Produkt-ID in einer Abfrage holen.so insgesamt 10 Abfragen für Top-10-Anwendungen.wählen Sie maximal 10 Werte in SQL-Server 2008

also ich möchte wissen, ob es gibt eine Möglichkeit, Top-10-Anwendungen leicht zu holen.

Ich habe Tabelle namens product.It hat zwei Felder product_id, purchase_count.i möchte 10 Produkt-ID, die höchste download_count Werte hat.

+1

Willkommen bei Stackoverflow. Wenn Fragen häufig abgelehnt werden, ist dies normalerweise ein Hinweis darauf, dass sie als "Plädoyer für freien Code" wahrgenommen werden. Das ist * nicht * diese Art von Website. Sie erhalten eine viel bessere Antwort (und weniger Down-Stimmen), wenn Sie Ihren Code zusammen mit einer kurzen Erklärung, wie sich die Ergebnisse von dem was Sie benötigen, veröffentlichen. Mach dir keine Sorgen, wenn der Code nicht funktioniert. Durch die Veröffentlichung können wir Ihnen zeigen, dass Sie sich Mühe gegeben haben, das Problem selbst zu lösen und nicht nur andere darum bitten, Code für Sie zu schreiben. Es hilft uns auch, das Problem besser zu verstehen. – Leigh

Antwort

3
select top 10 * from your_table order by douwnload_count DESC; 

EDIT: Da brauchen Sie nur product_id Verwendung:

select top 10 product_id from your_table order by download_count DESC; 
+1

danke sehr viel habib.osu ... ich habe es seit dem Morgen versucht .. – kalpesh

0

Wo Sie die Spalte "DOWNLOAD_COUNT" gespeichert haben? In einer anderen Tabelle?

In diesem Fall müssten Sie einen inneren Join zu dieser Tabelle vornehmen und nach der Spalte download_count sortieren. Wenn es in der gleichen Tabelle ist, können Sie etwas tun:

select top 10 product_id,purchase_count from product.It order by purchase_count DESC; 

Wenn in einer anderen Tabelle wäre es:

select top 10 product_id,sum(download_count) as downloads 
from product.It as p 
     inner join download.it as d on d.product_id= p.product_id 
group by product_id 
order by d.download_count DESC; 
+0

Vielen Dank – kalpesh

+0

Sie begrüßen @kalpesh Diese Frage sollte Ihnen helfen zu verstehen, wie man eine Antwort als "DIE" Antwort zu markieren: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work. – Mez

Verwandte Themen