Warning: Undefined array key "mobile_dir" in /home/kagla/new-sir/old/common.php on line 315
컬럼의 값이 특정 개수 이상인 게시물들의 합을 구하고 싶습니다.

컬럼의 값이 특정 개수 이상인 게시물들의 합을 구하고 싶습니다.

컬럼의 값이 특정 개수 이상인 게시물들의 합을 구하고 싶습니다.

QA

컬럼의 값이 특정 개수 이상인 게시물들의 합을 구하고 싶습니다.

답변 2

본문

안녕하세요~

계속 생각해봐도 제 잛은 지식으로 답이 안나와서 질문드립니다.ㅠㅠ

 

while 문으로 count 해서 값이 나온 결과물의 값이 n개 이상인 결과의 수를 구할 수 있는 방법이 있을까요?

 


<? 
    $sql = " select wr_subject from 테이블A where wr_datetime like '2022-01%' and wr_17 = '사과' order by wr_datetime asc limit 100";
    $result = sql_query($sql);    
    
    while($row = sql_fetch_array($result)) {        
?>    
<?
    $f_subject = $row['wr_subject'];    
    
    $a_sql = "SELECT COUNT(wr_subject) as cnt FROM 테이블B WHERE wr_subject = '$f_subject' and wr_datetime < '2022-01-31 23:59:59' group by wr_subject having COUNT(wr_subject) > 2 ";
    $row = sql_fetch($a_sql);
    $same_count = $row[cnt];
?>   
    <tr>
        <td> </td>
        <td><? echo $f_subject ?></td>
        <td><? echo $same_count ?></td>
    </tr>
<? } ?>

위와 같은 코드를 짰는데요. 실행을 하면 결과 값이

 

서울 

인천

경기도 4

강원도 10

부산 5

 

같이 위처럼 출력이 되는데요.

 

5개의 데이터 중 [값이 2이상]인 결과값이 있는 데이터가 3개니까

----------------------

값: 3

----------------------

을 출력하는 방법을 알고 싶은데 도저히 생각이 안나서요. 혹시 방법이 있을까요?~ㅠㅠ

 

이 질문에 댓글 쓰기 :

답변 2


<?
    $sql = "SELECT wr_subject FROM 테이블A WHERE wr_datetime LIKE '2022-01%' AND wr_17 = '사과' ORDER BY wr_datetime ASC LIMIT 100";
    $result = sql_query($sql);
    
    $total_count = 0; // Variable to store the total count
    
    while($row = sql_fetch_array($result)) {        
    
        $f_subject = $row['wr_subject'];    
        
        $a_sql = "SELECT COUNT(wr_subject) AS cnt FROM 테이블B WHERE wr_subject = '$f_subject' AND wr_datetime < '2022-01-31 23:59:59' GROUP BY wr_subject HAVING COUNT(wr_subject) > 2 ";
        $row = sql_fetch($a_sql);
        $same_count = $row['cnt'];
        
        if ($same_count > 2) {
            $total_count++; // Increment the total count if same_count is greater than 2
        }
?>   
        <tr>
            <td> </td>
            <td><? echo $f_subject ?></td>
            <td><? echo $same_count ?></td>
        </tr>
<? } ?>
----------------------
값: <? echo $total_count ?>
----------------------

$same_count = $row[cnt];

//추가

if( $same_count <=2) continue;

?>   

둘째 SQL 날짜 조건이 좀 이상해 보이는데
일단 넘어가고

SELECT b.wr_duject, COUNT(*) AS cnt FROM
테이블B b inner join  테이블A a
on b.wr_subject=a.subject
And a.wr_datetime >='2022-01-01'
And a.wr_datetime <='2022-01-31 23:59:59'
AND a.wr_17 = '사과'
Where b.wr_datetime < '2022-01-31 23:59:59'
GROUP BY b.wr_subject HAVING cnt > 2

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,406
© SIRSOFT
현재 페이지 제일 처음으로