저도 문제 하나 내 봅니다. ㅠ_ㅠ/
그누보드 게시판 구조에 대한 약간의 이해와 sql문에 대한 약간의 이해가 필요한 문제입니다.
초급이라고 하기엔 초보자에게 조금 난이도가 있을 것 같아 중급? 으로 난이도를 책정했습니다.
- 게시판에 글과 댓글을 많이 쓴 우수회원을 뽑고자 한다.
- 글 하나에 10점, 댓글 하나에 2점의 점수를 부여해 합산후 5명을 출력한다.
- 산출 기간은 2011-08-01 00:00:00 부터 2011-08-31 23:59:59 까지로 한다.
입니다.
답글이 안 되는군요. 아래에 흰색글씨로 답 첨부하겠습니다..; 드래그 하시면 답이 보이실겁니다.
좀 더 좋은 방법이 있을 것 같은데 sql문의 압박 때문에 제 머리로는 현재 저정도입니다. ㅠㅠ
실제 부탁 받은 부분은 조금 더 복잡한 부분입니다만, 이 부분이 핵심일 것 같네요. ㅎ
답:
/* 설정 시작 */
$점수['게시물'] = 10; // 게시물 하나당 점수
$점수['댓글'] = 2; // 댓글 하나당 점수
$명수 = 5; // 몇 명이나 뽑을지
/* 설정 끝 */
$sql = "SELECT mb_id, SUM( IF(wr_id=wr_parent, 1, 0))*{$점수['게시물']}+SUM( IF(wr_id=wr_parent, 0, 1))*{$점수['댓글']} AS total
FROM $g4[board_new_table]
WHERE bn_datetime BETWEEN '2011-08-01 00:00:00' and '2011-08-31 23:59:59'
GROUP BY mb_id order by total desc limit 0, {$명수}";
$result = sql_query($sql);
while($row = sql_fetch_array($result)) {
$temp[] = $row;
}
print_r2($temp);
댓글 2개
14년 전
sql에서 if와 sum을 쓰시는 분들이 얼마나 계실까라는 생각이 듭니다.
문제를 보자마자 아하 라는 분들도 계시겠지만요.
while을 생각하시는 분들이 더 많을 듯하네요.
왜냐하면 통계나 데이터마이닝을 하는 분들이 적을것이라는 생각 때문입니다.
재미있는문제 감사합니다.
문제를 보자마자 아하 라는 분들도 계시겠지만요.
while을 생각하시는 분들이 더 많을 듯하네요.
왜냐하면 통계나 데이터마이닝을 하는 분들이 적을것이라는 생각 때문입니다.
재미있는문제 감사합니다.
14년 전
between and 를 사용함으로 bn_datetime 은 int 형으로 선언하여 unix_timestamp 형태로 저장하여 속도를 높히는게 좋겠네요.
mysql에서 datetime 형이 index를 잘 사용하는지 모르겠네요.(mysql은 원래 빠른 녀석이긴 하지만..)
mysql에서 datetime 형이 index를 잘 사용하는지 모르겠네요.(mysql은 원래 빠른 녀석이긴 하지만..)
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 7930 | 9년 전 | 485 | ||
| 7929 | 9년 전 | 420 | ||
| 7928 | 9년 전 | 493 | ||
| 7927 | 9년 전 | 402 | ||
| 7926 | 9년 전 | 711 | ||
| 7925 | 9년 전 | 437 | ||
| 7924 | 9년 전 | 418 | ||
| 7923 | 9년 전 | 409 | ||
| 7922 | 9년 전 | 432 | ||
| 7921 | 9년 전 | 448 | ||
| 7920 | 9년 전 | 356 | ||
| 7919 | 9년 전 | 366 | ||
| 7918 | 9년 전 | 515 | ||
| 7917 | 9년 전 | 375 | ||
| 7916 | 9년 전 | 460 | ||
| 7915 | 9년 전 | 479 | ||
| 7914 | 9년 전 | 487 | ||
| 7913 | 9년 전 | 658 | ||
| 7912 | 9년 전 | 496 | ||
| 7911 | 9년 전 | 418 | ||
| 7910 | 9년 전 | 466 | ||
| 7909 | 9년 전 | 582 | ||
| 7908 | 9년 전 | 514 | ||
| 7907 | 9년 전 | 457 | ||
| 7906 | 9년 전 | 478 | ||
| 7905 | 9년 전 | 440 | ||
| 7904 | 9년 전 | 428 | ||
| 7903 | 9년 전 | 438 | ||
| 7902 | 9년 전 | 616 | ||
| 7901 |
|
9년 전 | 787 | |
| 7900 | 10년 전 | 672 | ||
| 7899 | 10년 전 | 460 | ||
| 7898 | 10년 전 | 455 | ||
| 7897 | 10년 전 | 412 | ||
| 7896 | 10년 전 | 430 | ||
| 7895 | 10년 전 | 549 | ||
| 7894 | 10년 전 | 455 | ||
| 7893 | 10년 전 | 429 | ||
| 7892 | 10년 전 | 470 | ||
| 7891 | 10년 전 | 827 | ||
| 7890 | 10년 전 | 1254 | ||
| 7889 | 10년 전 | 796 | ||
| 7888 |
limsy1987
|
10년 전 | 609 | |
| 7887 | 10년 전 | 649 | ||
| 7886 | 10년 전 | 532 | ||
| 7885 | 10년 전 | 501 | ||
| 7884 | 10년 전 | 496 | ||
| 7883 | 10년 전 | 501 | ||
| 7882 | 10년 전 | 557 | ||
| 7881 | 10년 전 | 536 | ||
| 7880 | 10년 전 | 653 | ||
| 7879 | 10년 전 | 544 | ||
| 7878 | 10년 전 | 1306 | ||
| 7877 | 10년 전 | 836 | ||
| 7876 | 10년 전 | 573 | ||
| 7875 | 10년 전 | 644 | ||
| 7874 |
|
10년 전 | 850 | |
| 7873 | 10년 전 | 577 | ||
| 7872 | 10년 전 | 735 | ||
| 7871 | 10년 전 | 553 | ||
| 7870 | 10년 전 | 671 | ||
| 7869 | 10년 전 | 488 | ||
| 7868 | 10년 전 | 529 | ||
| 7867 | 10년 전 | 533 | ||
| 7866 | 10년 전 | 591 | ||
| 7865 | 10년 전 | 533 | ||
| 7864 | 10년 전 | 589 | ||
| 7863 | 10년 전 | 586 | ||
| 7862 | 10년 전 | 557 | ||
| 7861 | 10년 전 | 727 | ||
| 7860 | 10년 전 | 706 | ||
| 7859 | 10년 전 | 473 | ||
| 7858 | 10년 전 | 779 | ||
| 7857 | 10년 전 | 1167 | ||
| 7856 | 10년 전 | 594 | ||
| 7855 | 10년 전 | 836 | ||
| 7854 | 10년 전 | 777 | ||
| 7853 | 10년 전 | 675 | ||
| 7852 | 10년 전 | 591 | ||
| 7851 | 10년 전 | 592 | ||
| 7850 | 10년 전 | 669 | ||
| 7849 | 10년 전 | 444 | ||
| 7848 | 10년 전 | 507 | ||
| 7847 | 10년 전 | 741 | ||
| 7846 | 10년 전 | 526 | ||
| 7845 | 10년 전 | 499 | ||
| 7844 | 10년 전 | 468 | ||
| 7843 | 10년 전 | 506 | ||
| 7842 | 10년 전 | 484 | ||
| 7841 | 10년 전 | 455 | ||
| 7840 | 10년 전 | 480 | ||
| 7839 | 10년 전 | 519 | ||
| 7838 | 10년 전 | 590 | ||
| 7837 | 10년 전 | 419 | ||
| 7836 | 10년 전 | 460 | ||
| 7835 | 10년 전 | 547 | ||
| 7834 |
|
10년 전 | 1247 | |
| 7833 | 10년 전 | 507 | ||
| 7832 | 10년 전 | 491 | ||
| 7831 | 10년 전 | 663 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기