2017-11-03 1 views
1

안녕 나는 데이터 집합으로 다음을 수행하기 위해 노력하고있어 나는이 모양이 있습니다다른 컬럼에 관해서는 각각의 고유 한 값의 수를 계산 (오라클 G11)

letter number 
a 1 
a 2 
a 1 
a 1 
a 3 
a 4 
a 2 
a 4 
b 1 
b 3 
b 4 
b 3 
b 2 
b 5 
b 1 
b 1 

는 데이터 집합의 결과입니다 내가 실행 한 하위 쿼리. I는 다음과 같이 할 수있는 데이터를 포맷 할, 그래서 COL 2 카운트 업에 나는 플래그 문자 열의 각 값에 대해보다 높은 3

letter number number_count 
    a 1 3 
    a 2 2 
    a 3 1 
    a 4 2 
    b 1 3 
    b 2 1 
    b 3 2 
    b 4 1 
    b 5 1 

그래서 수를 가지고있는 사람, 나는 각각의 고유 번호가 필요 할 수 있습니다 값 자체 옆에 표시됩니다. 나는 이것을 시도하고 해결하기 위해 많은 조사를 해왔고 수없이 많은 수의 변이를 얻지 못했다. 문제가 과소 평가되었거나 확실하지 않다. 내 검색을 구사하는 방법 그래서 내가 찾고있는 대답을 찾는다.

모든 도움을 주시면 감사하겠습니다. Oracle 11g 데이터베이스에 액세스하려면 SQL 개발자를 사용하고 있습니다.

답변

0

그래서 나는 다음 당신이 찾고있는 무엇을 생각 :

select letter, number, count(letter) as number_count from table group by letter, number; 
+0

이것은 정확하게 필요한 것 같습니다. 도움을 주셔서 대단히 감사합니다. "그룹화 기준"을 제대로 이해하지 못하여 문제가있는 것 같습니다. –

0

난 당신이 신고 한 하나 개의 결과를해야합니다 예를 보여주기 위해 두 가지 이상의 데이터 라인을 추가했다.

WITH 
     sub_q AS (
      SELECT 'a' AS letter_column, 1 AS value_column FROM Dual UNION ALL 
      SELECT 'a', 2 FROM Dual UNION ALL 
      SELECT 'a', 1 FROM Dual UNION ALL 
      SELECT 'a', 1 FROM Dual UNION ALL 
      SELECT 'a', 3 FROM Dual UNION ALL 
      SELECT 'a', 4 FROM Dual UNION ALL 
      SELECT 'a', 2 FROM Dual UNION ALL 
      SELECT 'a', 4 FROM Dual UNION ALL 
      SELECT 'b', 1 FROM Dual UNION ALL 
      SELECT 'b', 3 FROM Dual UNION ALL 
      SELECT 'b', 4 FROM Dual UNION ALL 
      SELECT 'b', 3 FROM Dual UNION ALL 
      SELECT 'b', 2 FROM Dual UNION ALL 
      SELECT 'b', 5 FROM Dual UNION ALL 
      SELECT 'b', 1 FROM Dual UNION ALL 
      SELECT 'b', 1 FROM Dual UNION ALL 
      SELECT 'b', 1 FROM Dual UNION ALL 
      SELECT 'b', 1 FROM DUal 
    ) 

SELECT 
     letter_column, 
     value_column, 
     COUNT(value_column) AS value_count, 
     CASE 
      WHEN COUNT(value_column) > 3 THEN 1 
      ELSE NULL 
     END AS flag_gt_3 
FROM sub_q 
GROUP BY 
     letter_column, 
     value_column 
ORDER BY 
     letter_column, 
     value_column 
; 
+0

- COUNT (value_column)를 사용하면 모든 행에 value 열의 값이 있다고 가정합니다. 값 열에 NULL이있는 행이 있고 특정 문자에 3 이상의 NULL이있는 경우에도 결과에 플래그를 지정하려는 경우, COUNT (value_column) 대신 COUNT (*)를 사용해야합니다. COUNT (value_column)가 다른 결과를 제공하는 이유는 NULL을 평가할 수 없습니다. – dreamwork

관련 문제