테스트 사이트 - 개발 중인 베타 버전입니다

SQL 셀렉트로 합과 자료 동시에 구하기

· 13년 전 · 1685 · 3
무슨 말이냐하면...

1. select A from B where C = 'D'
2. select sum(A) as cnt from B where C = 'D'

1번 쿼리의 결과값은 두개 이상입니다.
하나만 나오는 경우 select sum(A) as cnt, A 로 합쳐서 써도되지만(물론 허용되지 않는 환경도 있죠)
2개 이상이 나올때는 하나로 합쳐쓰는게 안됩니다.

질문 내용은. 두개 이상의 결과값이 나오는 경우 2개의 쿼리를
한번에 처리하여 결과값(결과 리스트와 특정 필드 누적 합 결과)이 나오게 할 수 있느냐는 겁니다.
답변좀 주세요.

(글 작성하고보니 번지수 조금 잘못찾긴했네요 ㅋ SQL 게시판도 있는데)

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 3개

죄송한데요... 질문을 3번을 정독 했는데도 질문이 이해가 않되서 그러는데요...
뭘 물어 보시는거죠??
sql문을 작성할때는 목적을 확실히 해야 한다는게 포인트죠.
원하시는것이 단순히 1번의 2개 결과값이 나오고
그 아래 한줄로 2번의 결과값이 찍히길 바라신다면
mysql union구문을 사용하시면 되구요.
그렇지 않고 같이 사용하시면 아마
A cnt
1 2
1 2
이런식이 되겠죠 아마 이런 쿼리를 생각하신다면
꼼수로 한방에 리스트와 합계를 같이 가져와서 뿌리면 엄청 효율적일꺼야 라고
생각하시고 질문하신것 같은데...
제 경험상 리스트만 가져와서 배열로 처리하면 리스트와 합계를 한방에 처리할수 있습니다.
DB는 괴롭히지 말아주세요 착한아이랍니다 ㅠㅠ
13년 전
배열이나 따로 합계를 필드에 저장하지 않았을 때 sum()과 필드선택을 왜 동시에 처리못하고 똑같은 쿼리를 두번 날려야하는지 의문이 있었는데 한번에 처리하는 문제가 생각보단 간단하진 않아보이네요 ㅋ

게시글 목록

번호 제목
8265
20403
20402
20401
20400
8259
20399
20398
8255
8249
8246
8242
20396
8240
20395
20394
31033
28385
20393
28380
20392
28377
20391
20390
20389
20388
20387
20386
20385
20384
20383
20382
8238
20380
20379
28376
28372
20378
20377
8235
20375
20374
20373
20372
20371
20370
28370
20369
28366
20368
20367
20366
20365
20364
20363
20362
20361
20360
20359
8231
20358
20357
20356
20355
20354
20353
20352
20351
20350
20349
20348
20347
20346
20345
20344
20343
20342
20341
20340
20339
20338
20337
20336
20335
20334
20333
20332
20331
20330
20329
20328
20327
20326
20325
20324
20323
20322
20321
20320
20319