SELECT COUNT( my_table.my_col ) AS row_count
FROM my_table
WHERE my_table.foo = 'bar'
그럼
SELECT my_table.my_col
FROM my_table
WHERE my_table.foo = 'bar'
또는 외곽진입 2
SELECT my_table.my_col, ( SELECT COUNT ( my_table.my_col )
FROM my_table
WHERE my_table.foo = 'bar' ) AS row_count
FROM my_table
WHERE my_table.foo = 'bar'
때문에 나는 이 일을 하는 마이 SQL 드라이버구성 (SQL 네이티브 클라이언트 9.0) 사용할 수 있는 SELECT 문은 허용하지 않습니다 스크라로카운트 알아야 할 수는 있지만 그 전에 내 행뿐만 어레이에서는 할당하고자 위해 할당 정보 예정이다. 즉, 사용하여 동적으로 할당된 컨테이너입니다 죄송합니다. 선택 사항이 아닙니다 이 지역 내 프로그램였어
나는 것을 우려하는 다음과 같은 상황이 발생할 수 있습니다.
외곽진입 2 는 이 문제를 금지?
또한 두 개 중 하나를 더 빠를 것으로 외곽진입? 그렇다면 어떤?
마지막으로, 더 나은 외곽진입 갖고 있는지 생각해 보아야 합니다. (아마도 수 있는 방법을 알려 줄 수 있는 선택 행뿐만 반품해야 드라이버를 사용한 결과 스크라로카운트?)
위에서 언급한 것과 함께, 나는 그 질문에 대한 기본 c++컴파일러는 사용하여 SQL 드라이버 (Microsoft 에서 제공하는.)
SELECT my_table.my_col
FROM my_table
WHERE my_table.foo = 'bar'
SELECT @@Rowcount
행 또는 스케쳐내 카운트입니다 비슷한 결과가 포함된 전송됩니까 외곽진입 # 2 를 사용할 수 있습니다. [3] [끝날거요 절]
SELECT my_table.my_col,
count(*) OVER(PARTITION BY my_table.foo) AS 'Count'
FROM my_table
WHERE my_table.foo = 'bar'
조항을 통해 사용할 때보다 훨씬 더 나은 성능을 얻기 위해 사용하는 서브케리 줄 수 있을 것이다. @@Rowcount 사용하여 최상의 성능을 갖게 될 수 있기 때문에, 모든 비용은 t # 39 좁히어 won& 쿼리하지 @@RowCount 기술서임을 선택
이에 대해 업데이트하십시오 셀명: 내가 준 예는 행) 에 의해 정의된 줄 것이라고, 이 경우 " my_table.foo" 의해 파티션에만 # 파티션에만 -;). 각 행의 는 열의 값이 # 와 동일한 값을 my_table.foo. 행 예를 들어, & # 39 절 = 있으므로, 여기서 my_table.foo 쿼리하지 경식도 " bar& # 39 의 동일한 가치를 갖게 될 my_table.foo ",, 모든 행을 결과 세트, 그러므로 모든 행과 열에 값을 받을 수 있다. (이 경우) 의 이 같은 비유하 # 행의 질의입니다.
다음은 각 행 즉 열이 더 좋은 방법 예 / 간단해진다는 포함 총 # 의 행을 결과 세트. 단순히 분리하십시오 옵션임 파티션에만 by 절입니다.
SELECT my_table.my_col, count(*) OVER() AS 'Count'
FROM my_table
WHERE my_table.foo = 'bar'
[4]: http://msdn.microsoft.com/en-us/library/ms189461.aspx " http://msdn.microsoft.com/en-us/library/ms189461.aspx";
두 가지뿐입니다 수 있는 방안을 100% 것이 확실한 COUNT (*) '와' 실제 쿼리하지 부여하느뇨 일관됨 결과:
그 중 하나를 사용하여 만든 새로운 행뿐만 격리인 수준에서는 다른 중요한 이유는 격리인 수준이 제대로 볼 수 있는 다른 클라이언트가 될 수 있도록 현재 트랜잭션입니다. Msdn 설명서를 읽고 대한 자세한 내용은 '설정되었습니다 트랜잭션 격리'.
항상 맞는 결과를 계수 2 는 복귀하십시오 외곽진입 설정되었습니다.
내가 이 연결할 수 있다고 해서, 서브쿼리 제안하세요 데이터베이스에구성원을 외부 조건에 따라 카운트입니다 표시되어도 쿼리하지 찼음을 일치시킵니다 http://cowcast. creativecow. 데이터세트를.
SELECT
mt.my_row,
(SELECT COUNT(mt2.my_row) FROM my_table mt2 WHERE mt2.foo = mt.foo) as cnt
FROM my_table mt
WHERE mt.foo = 'bar';
BEGIN TRAN bogus
SELECT COUNT( my_table.my_col ) AS row_count
FROM my_table
WHERE my_table.foo = 'bar'
SELECT my_table.my_col
FROM my_table
WHERE my_table.foo = 'bar'
ROLLBACK TRAN bogus
이는 올바른 값이 항상 반품하십시오.
또한, 만약 you& # 39, re SQL Server 사용, 마지막 행의 개수는 @@ROWCOUNT 사용할 수 있는 출력을 얻을 수 있으며, 실제 영향을 받는 기술서임을 리디렉션하십시오 임시 테이블 또는 테이블 가변으로 쿼리하지 복귀하십시오 수 있도록 하는, 아니 아예 모든 거래.
DECLARE @dummy INT
SELECT my_table.my_col
INTO #temp_table
FROM my_table
WHERE my_table.foo = 'bar'
SET @dummy=@@ROWCOUNT
SELECT @dummy, * FROM #temp_table
몇 가지 아이디어를:
이 추가 발생할 수 있기 때문에 그냥 구글 엔드입니다 질문이예요 상단형 내가 이 sqlite 의 로카운트 사용할 수 있습니다.
WITH temptable AS
(SELECT one,two
FROM
(SELECT one, two
FROM table3
WHERE dimension=0
UNION ALL SELECT one, two
FROM table2
WHERE dimension=0
UNION ALL SELECT one, two
FROM table1
WHERE dimension=0)
ORDER BY date DESC)
SELECT *
FROM temptable
LEFT JOIN
(SELECT count(*)/7 AS cnt,
0 AS bonus
FROM temptable) counter
WHERE 0 = counter.bonus