2011-01-29 52 views
0

後,我有一個SQL保持在MySQL SQL命令

select site_id,count from tags where match (tag) against ('statistici' in boolean mode) ORDER BY count DESC; 

+---------+-------+ 
| site_id | count | 
+---------+-------+ 
|  9 | 1300 | 
|  13 | 1200 | 
|  9 | 1100 | 
|  13 | 1000 | 
|  9 | 900 | 
|  13 | 800 | 
|  13 | 800 | 
+---------+-------+ 

什麼,我需要的是讓不同的SITE_ID。 但是當我通過語句中使用一組由數的順序沒有保持

select site_id,count from tags where match (tag) against ('statistici' in boolean mode) GROUP by site_id ORDER BY count DESC; 

+---------+-------+ 
| site_id | count | 
+---------+-------+ 
|  13 | 1000 | 
|  9 | 900 | 
+---------+-------+ 

我應該怎麼辦?

+0

我的解決方案將是SELECT site_id FROM(選擇site_id,從標籤t開始計數,其中match(tag)針對(布爾模式下的'statistici')ORDER BY count DESC)s GROUP by s.site_id;但我沒有ideea,如果這是優化 – keepwalking 2011-01-29 11:56:49

回答

0

您正在訂購ORDER BY count DESC,結果以最高的優先次序排列。

如果您偏​​好最低的數字,請更改爲ORDER BY count ACS

編輯:基於您的評論,或許這更像是你想達到什麼目的:

select site_id 
,  max(count) as TopCount 
from tags 
where match (tag) against ('statistici' in boolean mode) 
group by 
     site_id 
order by 
     TopCount DESC 

這將選擇每個站點的最高次數,第一個地方的最高計數。

+0

我需要按從高到低排序。正如你所看到的那樣,site_id有9和1300,所以第二條語句應該首先顯示。 – keepwalking 2011-01-29 11:56:08

+0

謝謝。這工作:)這是優化? – keepwalking 2011-01-29 12:27:07