2016-09-01 4 views
2

초보자 인 SQL 쿼리와 관련하여 누군가가이 문제를 해결할 수 있기를 바랍니다.SQL에서 행의 수를 얻는 방법

MID 및 jachtID라는 두 개의 열이있는 테이블이 있습니다.

MID jachtID 
89 10 
95 10 
83 11 

같은 것을 보일 것입니다 결과 :

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

그리고 내가 필요를 는 내가 필요하면이처럼 연결된 다른 MIDS에 얼마나 많은 같은 jachtIDS의의 수입니다 이 행 의 모든 나는

SELECT count(DISTINCT jachtID) FROM table 

를 사용하여 시도했다 그러나 이것은 단지 나에게 1 개 큰 숫자가 아니라 내가 원하는 결과를 제공합니다.

도움을 주시면 감사하겠습니다.

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

그런 다음 기본 테이블과 위 사이의 INNER JOIN합니다

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을 얻을 :

답변

4

다음과 같은 쿼리를 시도 할 수 있습니다 질의를하고 이에 대응하는 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