2016-11-02 7 views
0

説明するのは難しいですが、テーブル全体に多くの値があるテーブルがあります。 3回。SQL行の値を追加してこれに基づいて結果をランク付けする

これらの行を見ると、各行に別々の列の値が追加され、それに基づいて結果が並べられます。

たとえば、skyboxが3回以上表示されている場合は、各行の列のクリックを見て追加し、それよりも多いか少ないかに基づいて結果をランク付けします。

Skybox appears 4 times and has Clicks values 12,13,1,19 
test appears 3 times and has Clicks values 23,42,1,43 
Test should rank higher in the results as it has more clicks when added 

現在のクエリ

SELECT * FROM `data` GROUP BY SearchQuery HAVING COUNT(*) >= 3 

これは可能ですか?

+0

が期待された結果(とあなたの例に示すように、入力との関係)を追加してください。 – FDavidov

+0

期待される結果は結果の出力でskyboxの前に現れるでしょう –

答えて

1

これはあなたが望むものですか?

select name, sum(clicks) 
from t 
group by name 
having count(*) >= 3 
order by sum(clicks) desc; 
+0

働いてくれてありがとう! –

0

はこれを試してみてください。

select 
    SearchQuery, count(*), group_concat(`clicks`) 
FROM data 
GROUP BY SearchQuery 
HAVING count(*) > 3 
ORDER BY sum(`clicks`) desc 
関連する問題