2016-08-24 2 views
-2

SQL 테이블에서 데이터를 요구 가져올 수 :선택 쿼리는 다음과 같이 나는이 같은 일부 데이터가

Acc_Id || Row_No 
1   1 
2   1 
2   2 
2   3 
3   1 
3   2 
3   3 
3   4 

을 아래와 같이 나는 결과를 얻을 수있는 쿼리가 필요합니다

Acc_Id || Row_No 
1   1 
2   3 
3   4 

하세요 나는 SQL 초보자라고 생각해.

+0

원하는 결과 뒤에 어떤 논리를?, 당신은 당신이 논리를 설명 할 수있는 모든 – Lamak

+0

에서 설명하지 않았다? 출력에 대한 논리를 이해하지 못한다. –

+0

갭이 없다면'count (*)'는'max (Row_No)'와 동일하다. 진짜 질문은 당신이 카운트 또는 최대를 원하는지 여부입니다. – shawnt00

답변

0

의 개수를 원하는 가정합니다. 이 문제로 인해 솔루션에 대한 관심이 높아 졌으므로 group by에있는 documentation을보고 싶을 수 있습니다. 그룹화는 공통 컬럼 값을 가진 행을보고, 사용자가 지정한 컬럼 값을 그룹을 나타내는 단일 행으로 접어서 처리합니다. 귀하의 경우에는 Acc_Id의 값이 귀하의 그룹 이름입니다.

다른 답변은 모두 정확한 두 개의 열이 데이터와 동일합니다.

select Acc_Id, count(*), max(Row_No) 
from T 
group by Acc_Id; 

넘버링에 간격이있는 경우 동일하지 않습니다. 실제로 열의 최대 값 행 수를 찾고 있는지 여부를 결정해야합니다. 이 시점에서 앞으로 유용 할 많은 다른 집계 함수를 고려할 수 있습니다. (여기에 실제 값이 맥락에서 거의 의미가 있습니다.)

select Acc_Id, min(Row_No), sum(Row_No), avg(Row_No) 
from T 
group by Acc_Id; 
1

이 시도 :

select Acc_Id, MAX(Row_No) 
from table 
group by Acc_Id 
2

을 나는 다음이 집계 및 그룹화에 처음 노출 당신이 초보자로서 행

SELECT Acc_Id, COUNT(*) 
FROM Table 
GROUP BY Acc_Id 
관련 문제