저도 문제 하나 내 봅니다. ㅠ_ㅠ/
그누보드 게시판 구조에 대한 약간의 이해와 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년 전 | 475 | ||
| 7929 | 9년 전 | 408 | ||
| 7928 | 9년 전 | 486 | ||
| 7927 | 9년 전 | 388 | ||
| 7926 | 9년 전 | 695 | ||
| 7925 | 9년 전 | 421 | ||
| 7924 | 9년 전 | 402 | ||
| 7923 | 9년 전 | 390 | ||
| 7922 | 9년 전 | 419 | ||
| 7921 | 9년 전 | 435 | ||
| 7920 | 9년 전 | 345 | ||
| 7919 | 9년 전 | 356 | ||
| 7918 | 9년 전 | 509 | ||
| 7917 | 9년 전 | 363 | ||
| 7916 | 9년 전 | 451 | ||
| 7915 | 9년 전 | 465 | ||
| 7914 | 9년 전 | 476 | ||
| 7913 | 9년 전 | 652 | ||
| 7912 | 9년 전 | 485 | ||
| 7911 | 9년 전 | 407 | ||
| 7910 | 9년 전 | 458 | ||
| 7909 | 9년 전 | 573 | ||
| 7908 | 9년 전 | 512 | ||
| 7907 | 9년 전 | 445 | ||
| 7906 | 9년 전 | 464 | ||
| 7905 | 9년 전 | 434 | ||
| 7904 | 9년 전 | 420 | ||
| 7903 | 9년 전 | 431 | ||
| 7902 | 9년 전 | 606 | ||
| 7901 |
|
9년 전 | 771 | |
| 7900 | 9년 전 | 666 | ||
| 7899 | 9년 전 | 449 | ||
| 7898 | 9년 전 | 447 | ||
| 7897 | 9년 전 | 406 | ||
| 7896 | 9년 전 | 421 | ||
| 7895 | 9년 전 | 539 | ||
| 7894 | 9년 전 | 446 | ||
| 7893 | 9년 전 | 425 | ||
| 7892 | 9년 전 | 460 | ||
| 7891 | 9년 전 | 816 | ||
| 7890 | 9년 전 | 1237 | ||
| 7889 | 9년 전 | 772 | ||
| 7888 |
limsy1987
|
9년 전 | 581 | |
| 7887 | 9년 전 | 635 | ||
| 7886 | 9년 전 | 520 | ||
| 7885 | 9년 전 | 491 | ||
| 7884 | 9년 전 | 485 | ||
| 7883 | 9년 전 | 491 | ||
| 7882 | 9년 전 | 549 | ||
| 7881 | 9년 전 | 525 | ||
| 7880 | 9년 전 | 636 | ||
| 7879 | 9년 전 | 526 | ||
| 7878 | 9년 전 | 1300 | ||
| 7877 | 9년 전 | 822 | ||
| 7876 | 9년 전 | 567 | ||
| 7875 | 9년 전 | 638 | ||
| 7874 |
|
9년 전 | 834 | |
| 7873 | 9년 전 | 560 | ||
| 7872 | 9년 전 | 729 | ||
| 7871 | 9년 전 | 544 | ||
| 7870 | 9년 전 | 665 | ||
| 7869 | 9년 전 | 480 | ||
| 7868 | 9년 전 | 522 | ||
| 7867 | 10년 전 | 529 | ||
| 7866 | 10년 전 | 584 | ||
| 7865 | 10년 전 | 530 | ||
| 7864 | 10년 전 | 583 | ||
| 7863 | 10년 전 | 576 | ||
| 7862 | 10년 전 | 545 | ||
| 7861 | 10년 전 | 712 | ||
| 7860 | 10년 전 | 691 | ||
| 7859 | 10년 전 | 460 | ||
| 7858 | 10년 전 | 775 | ||
| 7857 | 10년 전 | 1159 | ||
| 7856 | 10년 전 | 584 | ||
| 7855 | 10년 전 | 824 | ||
| 7854 | 10년 전 | 757 | ||
| 7853 | 10년 전 | 659 | ||
| 7852 | 10년 전 | 582 | ||
| 7851 | 10년 전 | 586 | ||
| 7850 | 10년 전 | 655 | ||
| 7849 | 10년 전 | 421 | ||
| 7848 | 10년 전 | 489 | ||
| 7847 | 10년 전 | 731 | ||
| 7846 | 10년 전 | 514 | ||
| 7845 | 10년 전 | 492 | ||
| 7844 | 10년 전 | 454 | ||
| 7843 | 10년 전 | 491 | ||
| 7842 | 10년 전 | 473 | ||
| 7841 | 10년 전 | 443 | ||
| 7840 | 10년 전 | 461 | ||
| 7839 | 10년 전 | 514 | ||
| 7838 | 10년 전 | 573 | ||
| 7837 | 10년 전 | 400 | ||
| 7836 | 10년 전 | 451 | ||
| 7835 | 10년 전 | 532 | ||
| 7834 |
|
10년 전 | 1230 | |
| 7833 | 10년 전 | 497 | ||
| 7832 | 10년 전 | 473 | ||
| 7831 | 10년 전 | 638 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기