database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41759 게시물 읽기
No. 41759
로또 번호 카운트 쿼리좀 부탁드립니다 ㅠ.ㅠ
작성자
민수홍(min2012)
작성일
2019-09-23 16:02
조회수
2,736

현재 테이블은

    

테이블 명 : number_table

                회차     /        첫번째공    /       두번째공     /     세번째공       /     네번째공       /    다섯번째공    /     여섯번째공   /   보너스공     /

컬럼명 : HIT_EP / HIT_NUMBER1 / HIT_NUMBER2 / HIT_NUMBER3 / HIT_NUMBER4 / HIT_NUMBER5 / HIT_NUMBER6 / HIT_BOUNS /

내용    :   876      /        5                 /         16              /           21           /             26           /             34          /             42         /           24         /

내용    :   875      /        19               /         22              /           30           /             34           /             39          /             44         /           36         /

내용    :   874      /        1                 /         15              /           19           /             23           /             28          /             42         /           32         /

내용    :   873      /        3                 /         5               /           12           /             13           /             33          /             39         /           38         /

내용    :   872      /        2                 /         4               /           30           /             32           /             33          /             43         /           29         /

.....

 

1회 부터 876 이런식으로 구성이 되어 있습니다.

제가 하고 싶은것은 50회차 버튼을 클릭하면 rownum<=50 가게 되어서 876에서 826회차까지 데이터를 불러오게 됩니다.

select * from number_table

where rownum<=50;

 

위에 처럼 테이블이 불러와지면

1번 공이 몇개

2번 공이 몇개

3번 공이 몇개

...

45번 공 몇개

나왔는지 카운트를 하고 싶은데 어떻게 해야 할지 감이 잡히지 않습니다....

 

방안을 알고 계신분이 있으시면 힌트 좀 부탁드리겠습니다

 

이 글에 대한 댓글이 총 3건 있습니다.

UNPIVOT 을 이용하시면 됩니다.

아래 예제 참고 하세요.

 

with number_table as (
    select 876 HIT_EP, 5 HIT_NUMBER1, 16 HIT_NUMBER2, 21 HIT_NUMBER3, 26 HIT_NUMBER4, 34HIT_NUMBER5, 42 HIT_NUMBER6, 24 HIT_BOUNS FROM DUAL
    UNION ALL
    select 875, 19         ,  22        ,    30     ,      34     ,      39    ,      44   ,    36 FROM DUAL
    UNION ALL
    select 874, 1           ,  15        ,    19     ,      23     ,      28    ,      42   ,    32 FROM DUAL
    UNION ALL
    select 873, 3           ,  5         ,    12     ,      13     ,      33    ,      39   ,    38 FROM DUAL
    UNION ALL
    select 872, 2           ,  4         ,    30     ,      32     ,      33    ,      43   ,    29 FROM DUAL
)
SELECT HIT_NUMBER, COUNT(*) CNT
FROM (
    SELECT *
    FROM number_table
    UNPIVOT ( HIT_NUMBER FOR COL_NM IN (HIT_NUMBER1, HIT_NUMBER2, HIT_NUMBER3, HIT_NUMBER4, HIT_NUMBER5, HIT_NUMBER6, HIT_BOUNS) )
) GROUP BY HIT_NUMBER
ORDER BY 1
; 
박인호(paerae)님이 2019-09-23 16:43에 작성한 댓글입니다.

박인호 님이 주신 쿼리는 잘 보았습니다.

주신 쿼리에서 row_number를 이용해서 rk를 만들어서

등수 체크하고 상위 6개만 뽑을려고 하니까

where rk가 안되는데 아래 처럼 사용하는것이 아닐까요?

 

SELECT HIT_NUMBER, COUNT(*) CNT, ROW_NUMBER() OVER (ORDER BY count(*) desc) as rk
FROM (
    SELECT *
    FROM (select * from number_table
    where rownum <=10)
    UNPIVOT ( HIT_NUMBER FOR COL_NM IN (HIT_NUMBER1, HIT_NUMBER2, HIT_NUMBER3, HIT_NUMBER4, HIT_NUMBER5, HIT_NUMBER6) )
   
)
where rk <= 3
GROUP BY HIT_NUMBER
ORDER BY cnt desc;

민수홍님이 2019-09-23 17:23에 작성한 댓글입니다. Edit
select *
from (
	SELECT HIT_NUMBER, COUNT(*) CNT
	 FROM (
	     SELECT *
	     FROM (select * from number_table 
	     where rownum <=10)
	     UNPIVOT ( HIT_NUMBER FOR COL_NM IN (HIT_NUMBER1, HIT_NUMBER2, HIT_NUMBER3, HIT_NUMBER4, HIT_NUMBER5, HIT_NUMBER6) )
	     
	 ) 
	 GROUP BY HIT_NUMBER
	 ORDER BY cnt desc
 )
 where rownum <= 6
 ; 

박인호(paerae)님이 2019-09-23 17:31에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41763오라클 어드민 관련 3개질문 [1]
김동현
2019-09-29
2501
41762update 시 자동으로 작동하는 트리거 문의드립니다 [1]
민수홍
2019-09-26
2565
41760안녕하세요? WHERE절 조건에 CASE구문을 사용했는데요. 개념적으로 이해가 안되서 질문 드립니다. [3]
AstroTimothy
2019-09-23
2724
41759로또 번호 카운트 쿼리좀 부탁드립니다 ㅠ.ㅠ [3]
민수홍
2019-09-23
2736
41758SELECT절에 별칭.* 무슨의미에요? [1]
star
2019-09-22
2549
41757oracle database numeric(p,q) 질문이요!
질문질문!!
2019-09-21
2399
41756쿼리속도 질문 [4]
아폴론
2019-09-20
2743
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다