2017-05-21 6 views
-2

私はいくつかのテーブルがあります。私はテーブルのほとんどのレコードを持つ値/人を探しています。それ以上のものがあれば、そのすべてが選択されるべきです。Mysql、値の検索、ほとんどのと

私は2つのテーブルを持っているので、私はほとんどの値を持つ人から情報を選択する必要があります。何人?

私のテストでは、これが結果であると言いましょこの

select*, tbl1.Value, count (*) as atn 
from Tbl1, Tbl1 
group by Value 
order by antall Atn 


select* 
from Tbl1 left outer join tbl2 
on tbl1.value= tbl2.value; 

のように見えます。

Value-Value-value-atn 
-------------------- 
22 name name 2 
-------------------- 

この人10人のうち、テーブル内のほとんどのレコードを持っていた、と名前の値が別のテーブルから来ていることを意味

+0

少なくとも、サンプルデータと目的の結果を提供します。 –

+0

あなたの質問と適切なデータサンプルを更新してください。 – scaisEdge

答えて

0

次...

SELECT Value, 
     atn 
FROM (SELECT Value, 
       COUNT(*) AS atn 
     FROM Tbl1 
     GROUP BY Value 
    ) AS atnFinder 
GROUP BY Value, 
     atn 
HAVING atn = MAX(atn) 
ORDER BY Value; 

この文は、最初に各Valueに対応するレコードの数を決定するために、サブクエリatnFinderを使用してみてください。このサブクエリの結果は、各返されたフィールドによってグループ化され、各返されたレコードも独自のグループになります。 HAVING句を使用して、最大値がatnの各グループ/レコードを返します。

ご不明な点がございましたら、お気軽にコメントを投稿してください。

関連する問題