sum 함수 같은게 있을까요?
본문
여분필드 wr_1의 값이 10, 11, 5 이런식으로 나오고 있습니다.
게시글마다 숫자 개수는 다른 상황입니다. 20, 16, 30, 50, 5
혹시 =sum() 함수같이 위 숫자들을 더 할 수 있는 방법이 있을까요?
초보자라 질문드립니다ㅠㅠ
답변 7
$arr = array(20,16,30,50,5);
echo array_sum($arr);
이렇게 하시면 됩니다.
!-->아래 함수를 공부해 보세요.
https://www.php.net/manual/en/function.explode.php
https://www.php.net/manual/en/function.array-sum.php
다음과 같은 방법도 있으니 참고해 보세요
<?php
// 여분필드 wr_1 값들을 배열로 저장
$wr1_values = array(10, 11, 5);
// 배열에 있는 숫자들의 합을 구함
$total = array_sum($wr1_values);
// 필요한 처리나 출력을 수행
echo "wr_1 필드 값들의 합: " . $total;
// 여기에 추가적인 코드 작성 가능
?>
위의 코드는 예제로 단순히 array_sum() 함수를 사용하여 wr_1 필드 값들의 합을 구하고 출력하는 부분만 포함하며 그 외에 추가적인 작업이 필요하다면, // 여기에 추가적인 코드 작성 가능 주석 아래에 원하는 코드를 작성하면 됩니다.
제일 중요한건 @sinbi 님의 말씀처럼 제일 기초적인 php 함수공부를 하시는게 답입니다.
!-->조금은 억지스럽지만 이런 방법도 있습니다.
SELECT
wr_1
,(
0
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[0]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[1]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[2]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[3]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[4]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[5]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[6]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[7]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[8]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[9]'), 0)
) sum_each_wr_1
FROM
(
SELECT '10, 11, 5' wr_1 FROM DUAL UNION ALL
SELECT '20, 16, 30, 50, 5' wr_1 FROM DUAL
) tmp;
/*
+-------------------+---------------+
| wr_1 | sum_each_wr_1 |
+-------------------+---------------+
| 10, 11, 5 | 26 |
| 20, 16, 30, 50, 5 | 121 |
+-------------------+---------------+
*/
SELECT
SUM(
0
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[0]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[1]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[2]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[3]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[4]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[5]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[6]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[7]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[8]'), 0)
+ IFNULL(JSON_EXTRACT(CONCAT('[', wr_1 , ']'), '$[9]'), 0)
) sum_all_wr_1
FROM
(
SELECT '10, 11, 5' wr_1 FROM DUAL UNION ALL
SELECT '20, 16, 30, 50, 5' wr_1 FROM DUAL
) tmp;
/*
+--------------+
| sum_all_wr_1 |
+--------------+
| 147 |
+--------------+
*/
$arr = array_map('trim', explode(',', $wr_1));
$sum = array_sum($arr);
Bing
$wr_1 = array(10, 11, 5);
$wr_2 = array(20, 16, 30, 50, 5);
$sum_wr_1 = array_sum($wr_1);
$sum_wr_2 = array_sum($wr_2);
echo $sum_wr_1; // 출력 결과: 26
echo $sum_wr_2; // 출력 결과: 121
위 코드에서는 $wr_1과 $wr_2라는 배열에 각각 여분필드에 있는 값을 저장한 후 array_sum 함수를 사용하여 배열의 합을 구하고 있습니다. 이 방법으로 여분필드에 있는 숫자를 더해보세요!?
내용에 따라서는
별도 테이블이 더 알맞을 수 있습니다.
답변을 작성하시기 전에 로그인 해주세요.