2016-09-01 4 views
2

私はSQLクエリに関する初心者ですので、誰かがこれを手伝ってくれることを願っています。SQLの行数を取得するには

私はMIDとjachtIDという2つの列を持つテーブルを持っています。私は必要なもの は、このようなそれらに接続された異なるMIDSでありますどのように多くの同じjachtIDSのカウントです:

MID jachtID 
89 10 
95 10 
83 11 

結果は次のようなものになります。

MID jachtID count 
89 10  2 
95 10  2 
83 11  1 

を私は必要としますこれは、行 のすべてのために私は

SELECT count(DISTINCT jachtID) FROM table 

を使用して試してみました。しかし、これはちょうど私の1つの大きな数ではなく、私は必要な結果を与えます。

ご協力いただければ幸いです。

答えて

4

次のクエリを試すことができます。

SELECT 
    T.MID, 
    T.jachtID, 
    jT.total 
FROM table T INNER JOIN 
(
    SELECT 
    jachtID, 
    COUNT(*) total 
    FROM table 
    GROUP BY jachtID 
)AS jT 

ON T.jachtID = jT.jachtID 

まず次のクエリによって、各jachtIDcountを取得:

SELECT 
    jachtID, 
    COUNT(*) total 
FROM table 
GROUP BY jachtID 

そして、メインテーブルと上記の間INNER JOINを作りますそれに対応するjatchtIDカウントを取得します。

2

あなたはいくつかのGROUP BYマジックでこれを行うことができるかもしれませんが、すべての行が欲しいので、わかりません。ただし、サブクエリを使用すると動作します。

SELECT 
    a.MID, 
    a.jachtID, 
    (SELECT count(b.jachtID) FROM table AS b WHERE b.jachtID= a.jachtID) AS `count` 
FROM table AS a 
関連する問題