IT

동일한 쿼리에서 모든 열과 개수(*)를 선택하는 방법

itgroup 2023. 2. 14. 20:12
반응형

동일한 쿼리에서 모든 열과 개수(*)를 선택하는 방법

TSQL에서는 다음 쿼리를 자주 사용합니다.

SELECT COUNT(*), * 
FROM CUSTOMER c 
WHERE c.Name like 'foo%';

Oracle SQL Developer에서 이 쿼리를 실행하려고 하면 작동하지 않고 오류가 발생합니다.

"식 누락"

어떤 구문이 좋을까요?

잘 부탁드립니다.

이렇게 하면 성능이 향상됩니다.

SELECT COUNT(*) OVER (), c.*
FROM CUSTOMER c 
WHERE c.Name like 'foo%';

한 가지 방법은 다음과 같은 작업을 수행하는 것입니다.이것에 의해, 각 행의 카운트(*) 결과가 됩니다.그러나 주의하세요. 데카르트조인이 있습니다.foo%와 같은 행이 많으면 성능이 저하됩니다.

select a.cntr, c.*
from CUSTOMER c 
   , (select count(*) cntr
     from customer b
     where b.name like 'foo%' ) a
where c.name like 'foo%'

여기 MySQL 코드 아래는 단일 쿼리에서 선택 * 및 총 행을 모두 가져오는 방법입니다.

$result = $db->get_results("SELECT a.total, c.* FROM tableName c, 
(select count(*) total from tableName b where b.post=25) a 
where c.post=25");

그러면 변수 합계를 구하여 카운트를 가져올 수 있으며 *는 테이블 열에 따라 에 사용할 수 있습니다.

그런데 어떻게 하면 foreach() 없이 합계를 얻거나 직접 vaile에 넣을 수 있을까요?

포어치 없이 총체적으로 갑니다.

echo "Total: ".count($result);

언급URL : https://stackoverflow.com/questions/17187124/how-to-select-all-columns-and-a-count-in-the-same-query

반응형