[SQL] 여러 테이블에서 COUNT (*)를 선택
SQL여러 테이블에서 COUNT (*)를 선택
나는 결과로 가진 두 개의 서로 다른 테이블 (그들 TAB1과 TAB2 전화)에서 COUNT (*)를 선택할 수있는 방법 :
Count_1 Count_2
123 456
나는 이것을 시도했다 :
select count(*) Count_1 from schema.tab1 union all select count(*) Count_2 from schema.tab2
하지만 내가 가진 전부입니다 :
Count_1
123
456
해결법
-
==============================
1.
SELECT ( SELECT COUNT(*) FROM tab1 ) AS count1, ( SELECT COUNT(*) FROM tab2 ) AS count2 FROM dual
-
==============================
2.SQL 서버에서 같은 일을 수행하기위한 추가 정보로서, 당신은 단지 쿼리의 "FROM 이중"부분을 제거해야합니다.
SQL 서버에서 같은 일을 수행하기위한 추가 정보로서, 당신은 단지 쿼리의 "FROM 이중"부분을 제거해야합니다.
-
==============================
3.그냥 약간 다른 왜냐하면 :
그냥 약간 다른 왜냐하면 :
SELECT 'table_1' AS table_name, COUNT(*) FROM table_1 UNION SELECT 'table_2' AS table_name, COUNT(*) FROM table_2 UNION SELECT 'table_3' AS table_name, COUNT(*) FROM table_3
그렇지 않으면 내가 훨씬 다른 생각하지 않는다, 전치 답변 (테이블 당 하나의 행 하나가 아닌 열)를 제공합니다. 나는 성능 현명한 그들은 동등해야한다고 생각합니다.
-
==============================
4.내 경험은 SQL Server와 함께,하지만 당신은 할 수 있습니다 :
내 경험은 SQL Server와 함께,하지만 당신은 할 수 있습니다 :
select (select count(*) from table1) as count1, (select count(*) from table2) as count2
SQL 서버 I에서는 후있는 결과를 얻을.
-
==============================
5.다른 약간 다른 방법 :
다른 약간 다른 방법 :
with t1_count as (select count(*) c1 from t1), t2_count as (select count(*) c2 from t2) select c1, c2 from t1_count, t2_count / select c1, c2 from (select count(*) c1 from t1) t1_count, (select count(*) c2 from t2) t2_count /
-
==============================
6.내가 볼 수 없기 때문에 다른 대답이를 불러옵니다.
내가 볼 수 없기 때문에 다른 대답이를 불러옵니다.
당신은 하위 쿼리처럼하지 말고 당신이 할 수있는 각 테이블의 기본 키가있는 경우 :
select count(distinct tab1.id) as count_t1, count(distinct tab2.id) as count_t2 from tab1, tab2
그러나 성능은 현명한 난 Quassnoi의 솔루션은 더 나은, 그리고 하나의 내가 사용하는 것이라고 생각합니다.
-
==============================
7.SELECT (SELECT 표 FROM COUNT (*)) + (SELECT COUNT (*) 표 2)에서 이중 FROM;
SELECT (SELECT 표 FROM COUNT (*)) + (SELECT COUNT (*) 표 2)에서 이중 FROM;
-
==============================
8.
select (select count(*) from tab1) count_1, (select count(*) from tab2) count_2 from dual;
-
==============================
9.여기에 내에서 공유 할
여기에 내에서 공유 할
옵션 1 - 다른 테이블에서 같은 도메인 계산
select distinct(select count(*) from domain1.table1) "count1", (select count(*) from domain1.table2) "count2" from domain1.table1, domain1.table2;
옵션 2 - 같은 테이블의 다른 도메인에서 계산
select distinct(select count(*) from domain1.table1) "count1", (select count(*) from domain2.table1) "count2" from domain1.table1, domain2.table1;
옵션 3 - "노조 모두"와 같은 테이블에 대해 서로 다른 도메인에서 카운트 횟수의 행이하는
select 'domain 1'"domain", count(*) from domain1.table1 union all select 'domain 2', count(*) from domain2.table1;
SQL을 즐기십시오, 나는 항상 :)
-
==============================
10.
select t1.Count_1,t2.Count_2 from (SELECT count(1) as Count_1 FROM tab1) as t1, (SELECT count(1) as Count_2 FROM tab2) as t2
-
==============================
11.완전성의 비트 용 -이 쿼리는 해당 소유자에게 모든 테이블의 수를 제공하는 쿼리를 작성합니다.
완전성의 비트 용 -이 쿼리는 해당 소유자에게 모든 테이블의 수를 제공하는 쿼리를 작성합니다.
select DECODE(rownum, 1, '', ' UNION ALL ') || 'SELECT ''' || table_name || ''' AS TABLE_NAME, COUNT(*) ' || ' FROM ' || table_name as query_string from all_tables where owner = :owner;
출력은 같은 것입니다
SELECT 'TAB1' AS TABLE_NAME, COUNT(*) FROM TAB1 UNION ALL SELECT 'TAB2' AS TABLE_NAME, COUNT(*) FROM TAB2 UNION ALL SELECT 'TAB3' AS TABLE_NAME, COUNT(*) FROM TAB3 UNION ALL SELECT 'TAB4' AS TABLE_NAME, COUNT(*) FROM TAB4
어떤 당신은 다음 수를 얻을 수 실행할 수 있습니다. 그것은 때로는 약이 단지 편리한 스크립트입니다.
-
==============================
12.빠른 찌르기가 함께했다 :
빠른 찌르기가 함께했다 :
Select (select count(*) from Table1) as Count1, (select count(*) from Table2) as Count2
참고 : 나는 SQL 서버에서이 테스트를, 그래서 이중에서 (따라서 불일치) 필요가 없습니다.
-
==============================
13.테이블 (또는 적어도 키 열)이 동일한 유형의 경우 단지 먼저 노동 조합을 만든 다음 계산합니다.
테이블 (또는 적어도 키 열)이 동일한 유형의 경우 단지 먼저 노동 조합을 만든 다음 계산합니다.
select count(*) from (select tab1key as key from schema.tab1 union all select tab2key as key from schema.tab2 )
아니면 문을 가지고 주위 다른 합계 ()을 넣어.
select sum(amount) from ( select count(*) amount from schema.tab1 union all select count(*) amount from schema.tab2 )
-
==============================
14.
--============= FIRST WAY (Shows as Multiple Row) =============== SELECT 'tblProducts' [TableName], COUNT(P.Id) [RowCount] FROM tblProducts P UNION ALL SELECT 'tblProductSales' [TableName], COUNT(S.Id) [RowCount] FROM tblProductSales S --============== SECOND WAY (Shows in a Single Row) ============= SELECT (SELECT COUNT(Id) FROM tblProducts) AS ProductCount, (SELECT COUNT(Id) FROM tblProductSales) AS SalesCount
-
==============================
15.
Declare @all int SET @all = (select COUNT(*) from tab1) + (select count(*) from tab2) Print @all
또는
SELECT (select COUNT(*) from tab1) + (select count(*) from tab2)
-
==============================
16.다른 테이블에 가입하세요
다른 테이블에 가입하세요
SELECT COUNT(*) FROM ( SELECT DISTINCT table_a.ID FROM table_a JOIN table_c ON table_a.ID = table_c.ID );
-
==============================
17.고르다 (선택한 횟수 ()에서 TAB1 여기서 필드 '값'등) + (여기서, 필드의 '값'처럼 TAB2에서 카운트 ()을 선택) 카운트
고르다 (선택한 횟수 ()에서 TAB1 여기서 필드 '값'등) + (여기서, 필드의 '값'처럼 TAB2에서 카운트 ()을 선택) 카운트
-
==============================
18.
select @count = sum(data) from ( select count(*) as data from #tempregion union select count(*) as data from #tempmetro union select count(*) as data from #tempcity union select count(*) as data from #tempzips ) a
from https://stackoverflow.com/questions/606234/select-count-from-multiple-tables by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SELECT 문에서 NOLOCK 힌트의 효과 (0) | 2020.03.25 |
---|---|
[SQL] SQL : WHERE 절 내에서 IF 절 (0) | 2020.03.25 |
[SQL] ROW_NUMBER 대 SQL RANK () () (0) | 2020.03.25 |
[SQL] 보관 JSON 데이터베이스 대에 각 키에 대한 새 열을 가진 (0) | 2020.03.25 |
[SQL] MySQL은 CHECK 제약 조건이 작동하지 않습니다 (0) | 2020.03.25 |