sql group by 질문 입니다. 채택완료
웹프리죤
3년 전
조회 2,118

이렇게 잘 나오고 있거든요
빨간 부분이 가격이 동일해서 group by 를 시키면 아래처럼 카운트가 맞지 않는데요..

4
3
2
1
이렇게 카운트가 정상적으로 나오게 수정할 방법이 있을까요?
</p>
<p>// 실시간 매도 호가
$sql = " select *,sum(sale_qty) as itqty from `g5_shop_trading` where it_id = '".$it_id."' and sale_status = '판매중' group by sale_price order by sale_price desc ";
$result_sale = sql_query($sql);</p>
<p>$sql3 = " select count(*) as cnt from `g5_shop_trading` where it_id = '".$it_id."' and sale_status = '판매중' group by sale_price order by sale_price desc ";
$result_count = sql_fetch($sql3);
$count = $result_count['cnt'];</p>
<p> </p>
<p><?php
for ($i=0; $row=sql_fetch_array($result_sale); $i++) {
$j = $count - $i;
?>
<li>
<div>매도 <?php echo $j ?> 호가</div>
<div><?php echo number_format($row['sale_price']) ?></div>
<div><?php echo number_format($row['itqty']) ?></div>
<div><?php echo number_format($row['itqty'] * $row['sale_price']) ?></div>
</li>
<? } ?></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
3년 전
별도로 카운트를 구하지 마시구 sql_num_rows 를 사용면 group by을 하더라도 카운터를
정확하게 알수 있습니다.
select count를 하면 조건에 따라 값이 틀려질수 있기 때문에 row count랑 상이 해질수 있습니다.
</p>
<p> </p>
<p>$sql = " select *,sum(sale_qty) as itqty from `g5_shop_trading`</p>
<p> where it_id = '".$it_id."' and sale_status = '판매중'</p>
<p> group by sale_price</p>
<p> order by sale_price desc ";
$result_sale = sql_query($sql);</p>
<p>$count = sql_num_rows($result_sale); <-- 요렇게 해서 한번 사용해보세요.</p>
<p> </p>
<p><?php
for ($i=0; $row=sql_fetch_array($result_sale); $i++) {
$j = $count - $i;
?>
<li>
<div>매도 <?php echo $j ?> 호가</div>
<div><?php echo number_format($row['sale_price']) ?></div>
<div><?php echo number_format($row['itqty']) ?></div>
<div><?php echo number_format($row['itqty'] * $row['sale_price']) ?></div>
</li>
<? } ?></p>
<p> </p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인