2011-10-18 21 views
0

ここ数日は読んでいて、ここで私の問題を抱えているようです。ウィッヒコードをカウントするクエリがそうで検索、D0G08H13L12後ほとんど発生のためMYSQLの質問質問検索

id CODE 
1 D0G08H13L12 
2 D1G12H10L12 
3 D0G10H12L11 
4 D1G10H10L09 
5 D0G08H13L12 
6 D1G12H10L12 
7 D0G08H13L12 
8 D1G10H10L09 
9 D0G08H13L12 
10 D1G12H10L12 


今イム検索:

TABLE1コード:

私はあなたに私のDBの洞察力を与えるみましょう次のレコードは私の質問からの回答は:

3 times D1G12H10L12 
1 time D1G10H10L09 

これは私が今まで持っているものですryしかし、私はかなり確信していません。

SELECT id, code, COUNT(code) FROM table1 WHERE id IN ($idprint +1) GROUP BY code 
ORDER BY COUNT(code) DESC 

あなたのDBプロの方々が良い方向に手伝ってくれますか?

ありがとうございます!

サンダー

+0

"コードがD0G08H13L12の後に最も多く現れる"とは、IDが5以上のコードを意味しますか? –

+0

このクエリーはすべてのコードとそのカウントを返します.D0G08H13L12を除外したいか、または出現頻度が最も高いものを除外したい場合は –

+0

です.D0G08H13L12の発生後に最も発生するコードを見つけることができますIDは問題ではありません。 – user1000911

答えて

0

これを試してみてください:

SELECT COUNT(id) tot, `code` 
FROM your_table 
GROUP BY `code` 
HAVING tot <= 
    (SELECT COUNT(id) FROM your_table 
    WHERE code = 'D0G08H13L12') 
    AND code <> 'D0G08H13L12' 
ORDER BY tot DESC 

あなたが持っているしたい場合は2つのだけのレコードがクエリにこれを追加:

LIMIT 2 
+0

@ user1000911:私のクエリを試して、それが動作するかどうか教えてください:) – Marco

+0

#1064 - SQL構文にエラーがあります。 'GROUP BY 'コードの近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。HAVING tot <(SELECT COUNT(ID)FROM このエラーは、バージョン5.5.13で、php myadmin 3.4 .3.1 – user1000911

+0

@ user1000911:テストしただけで動作しました!テーブル名を変更しましたか? – Marco

0

はこれを試してみてください、これはuのに望ましい結果が得られます....

Select id, code, count(code) 
from table1 
where id>(select max(id) from table1 where code =D0G08H13L12) group by code order by count(code) desc; 
+0

こんにちは、ありがとう、クエリは私が思うが、完全には動作しません。私のフルDBの 私はD0G08H13L12の4600発生を持っていますが、それはあなたとの合計17をカウントします。もしIDが合計総計を集計すれば、それは4600までカウントしなければならない。 – user1000911

+0

ちょっと、私のクエリは、D0G08H13L12の最後の出現の後に存在する行に作用する.URLの必要条件だと思う。 あなたが望む –

+0

私はこのクエリは、D0G08H13L12の1回の出現であると思うが、それはテーブル内のD0G08H13L12のすべての出現についてこれをチェックするのが好きだ。 私はこれが、thxに役立つことを願っています! – user1000911

0
select min(x.id), x.code 
from yourTable x, 
    (
    select * from yourTable 
    where code = 'D0G08H13L12' 
) v 
where 
    x.id > v.id 
group by v.id 

入力されたコードの次のコードを取得する。

+0

を入力してください。これはトリックのおかげです。それを数えることもできますか?今はidと出力を表示しているので、すべてのレコードと思います。しかし、それは合計を数えません – user1000911