|
[필독] 처음 오시는 분을 위한 안내 (736) |
정은준1 |
2014-05 |
5194732 |
0 |
2014-05
5194732
1 정은준1
|
|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1727759 |
25 |
2015-12
1727759
1 백메가
|
45507 |
노트북 메모리 지원 용량(I7 2세대) (4) |
별해는아해 |
2012-03 |
7417 |
0 |
2012-03
7417
1 별해는아해
|
45506 |
이북 리더기 추천 부탁드립니다. (5) |
가정선생 |
2016-08 |
4333 |
0 |
2016-08
4333
1 가정선생
|
45505 |
모니터 144hz 165hz 설정시 화면깨짐 (8) |
부산초보 |
2020-01 |
13072 |
0 |
2020-01
13072
1 부산초보
|
45504 |
램 짝짝이? 질문 (6) |
jkaem |
2022-12 |
2640 |
0 |
2022-12
2640
1 jkaem
|
45503 |
AIX 입문... (4) |
우앙뿌앙 |
2012-03 |
5500 |
0 |
2012-03
5500
1 우앙뿌앙
|
45502 |
국내 정식발매된 M/B중에 Linux 호환 좋은 보드... (8) |
서현석 |
2014-04 |
4471 |
0 |
2014-04
4471
1 서현석
|
45501 |
NginX 관련 질문 하나 드리겠습니다. (5) |
지니보이 |
2016-08 |
4349 |
0 |
2016-08
4349
1 지니보이
|
45500 |
cisco스위치 공공기관 납품 관련 (4) |
리키파울러 |
2020-01 |
2472 |
0 |
2020-01
2472
1 리키파울러
|
45499 |
Micro Gen8 VGA문의드립니다.. (6) |
송진현 |
2014-04 |
4181 |
0 |
2014-04
4181
1 송진현
|
45498 |
땜질관련...무연납, 유연납, 은납, 할로겐프리납 (7) |
머리감자 |
2020-01 |
3652 |
0 |
2020-01
3652
1 머리감자
|
45497 |
Mysq 쿼리문에서 중복허용 2회까지만 허용하는 쿼리 (9) |
허인구마틴 |
2021-05 |
3129 |
0 |
2021-05
3129
1 허인구마틴
|
45496 |
알리 배송 - 분쟁을 열어야 할 것 같습니다. (19) |
나우마크 |
2021-05 |
2623 |
0 |
2021-05
2623
1 나우마크
|
45495 |
윈도우즈 탐색기 질문 (1) |
한덩어리 |
2014-04 |
3518 |
0 |
2014-04
3518
1 한덩어리
|
45494 |
지금 나오는 제네시스도 ZF미션인가요..? (2) |
윈도우10 |
2015-08 |
6074 |
0 |
2015-08
6074
1 윈도우10
|
45493 |
HCI 진행 시 Window Server 라이선스 질문 (4) |
DualPort |
2023-01 |
2227 |
0 |
2023-01
2227
1 DualPort
|
45492 |
grub4dos 질문입니다 (6) |
Haizen |
2024-09 |
1185 |
0 |
2024-09
1185
1 Haizen
|
45491 |
Z440 CPU 호환 질문드려요!! (9) |
슈퍼똘똘 |
2024-09 |
1042 |
0 |
2024-09
1042
1 슈퍼똘똘
|
45490 |
PC 튜닝용 고무엣지 용산에서 구입할만한 곳이 없을까요? (1) |
총각 |
2012-04 |
8752 |
0 |
2012-04
8752
1 총각
|
45489 |
HP Z620 : CPU업그레이드 의미 있나요 ?? (7) |
시골집노안 |
2020-02 |
3782 |
0 |
2020-02
3782
1 시골집노안
|
45488 |
CentOS 6.5용 OpenSSL g버전 패키지설치 되나요? (1) |
윈도우10 |
2014-04 |
4035 |
0 |
2014-04
4035
1 윈도우10
|
A.Country, a.cnt
From (
SELECT country,COUNT(*) as cnt
FROM author
GROUP BY country
) a
Where a.cnt < 3;
Mysql은 거의 사용해보진 안았지만 대략 이런 쿼리가 될거 같습니다.
Mysql 은 안된다면 위에처럼 해야겠지요
SELECT country
FROM author
GROUP BY country
Having count(*) < 3
rank() 를 사용하시면 원하시는 기능을 쉽게 구현할 수 있을 텐데...
https://codingdog.tistory.com/entry/sql-rank-over-%ED%95%A8%EC%88%98-%EC%95%8C%EB%A9%B4-%EC%86%90%EC%89%BD%EA%B2%8C-%EB%9E%AD%ED%82%B9%EC%9D%84-%EB%A7%A4%EA%B8%B8-%EC%88%98-%EC%9E%88%EB%8B%A4
having 이란 것은 처음 기대와는 전혀 다른 의미였습니다.
즉 having 이란 중복이란 것은 맞는데...
중복이 몇 번된 즉 그 조건에 맞는 것만을 쿼리해서 distict 으로 한개씩만 보여주는 것이였습니다.
원래 목적은 만약 중복이 있다면 두번까지만 가져오고,
그 나머지는 쿼리해서 가져오지 않는 것이였습니다.
결국은 php 으로 동일여부를 체크해서 두번까지만 두고 나머지는 삭제하는 방식으로 해야할 듯 합니다.
결론은 이런 쿼리는 불가능이란 것으로 생각됩니다.
원하시는것이 구체적으로 무엇인지만 얘기주시면
2cpu 능력자 분들 많으십니다
제가 자주 얘기하는것중 하나가
프로그램으로 안되는 것은
없고 다만 몰라서 못하고 되더라도 시간이 걸릴뿐입니다.
하나의쿼리로 안된다면 펑션이나 프로시져로 만드셔도 됩니다.
group by 를 쓴다는건 집계 함수를 사용한다는 것인데
이때 그 집계조건을 걸어주는 문장입니다.
그래서 having count(*) < 3 만 가능한게 아니라
having sum(hit) > 100 이런식으로도 가능합니다.
그리고 원하시는건 group by having 으로는 안되고
row_number over partition by 를 이용하셔야 합니다.
가령 메인페이지에 최근 게시물 10개를 보여주는데
하루에 글쓴이가 2번까지는 나오게 한다면 ( 같은날 글 3개 썼다면 첫번째 글은 제외) 다음과 같이 하시면 됩니다.
select a.*
from (
select row_number() over(partition by 등록일YYYYMMDD, 글쓴이 order by idx desc) rn, a.*
from 게시판 a) a
where a.rn < 3
order by idx desc
limit 10
"mysql 관련 윈도우 함수"라고 검색하여 공부해 보시고
조금 난해하다 싶으시면 그냥 로직으로 처리하는 것도 방법입니다.
개발은 구현하는 방법이 무척 다양하고 뽀대나는 코드보다는
본인이 확실히 이해하고 익숙한 코드가 더 좋은 방법일 수 있습니다.