SQL 테이블 카운팅 및 조인 (SQL Table Counting and Joining)


문제 설명

SQL 테이블 카운팅 및 조인 (SQL Table Counting and Joining)

I have Table A, Column 1.

This table has values such as:

1
2
3
3
4
4
4
5

I have Table B, Column 2.

Which lists certain values, like:

1
3
4

I need a query to Count each unique value in Table A, but ONLY if that value is present in Table B.

So with the above, the end result would be:

1 has a quantity of 1, 3 has a quantity of 2, and 4 has a quantity of 3.

My only problem is that I do not have this ability. Any help out there?


참조 솔루션

방법 1:

Based on your question, something like the following should solve your problem. 

  select b.column1,
    count(a.column2)
  from tableb as b
        inner join tablea as a on b.column1 = a.column2
    group by b.column1

Since you wanted only records which are in both tables, I am using an inner join. Then I am just grouping by the ID found in tableb, and getting the count of rows in tablea.

Let me know if you have any problems.

For more information regarding inner join, see : http://www.w3schools.com/sql/sql_join_inner.asp, and for group by, see : http://www.w3schools.com/sql/sql_groupby.asp

방법 2:

I would use an INNER JOIN query with GROUP BY aggregate function

SELECT a.column1, 
       count(a.column1) as total
FROM tablea a
     INNER JOIN tableb b
        ON a.column1  = b.column2
GROUP BY a.column1

방법 3:

Try this

MsSql

Select Distinct Column1,Count(Column1) Over (Partition by Column1) 
From Table1
Where Column1 IN (Select Column2 From Table2)

Fiddle Demo

MySQl

Select Column1,Count(Column1)
From Table1    
Where Column1 IN (Select Column2 From Table2)
group by column1

Fiddle Demo

방법 4:

SELECT column1,COUNT(column1)
FROM table1
WHERE column1 IN
  (SELECT DISTINCT column2 FROM table2)
GROUP BY column1

(by user3331453MezFabioVignesh Kumar A124)

참조 문서

  1. SQL Table Counting and Joining (CC BY‑SA 3.0/4.0)

#MySQL #sql-server #SQL






관련 질문

MySQL: IN(p1)은 IN(p1, p2, ...)과 다르게 작동합니까? (MySQL: Does IN(p1) function differently to IN(p1, p2, ... )?)

SQL 테이블 카운팅 및 조인 (SQL Table Counting and Joining)

ORA-00979: Oracle에 대한 GROUP BY 표현식이 아니지만 절 차이의 컨텍스트에서 MySQL에 대해서는 유효하지 않습니다. (ORA-00979: not a GROUP BY expression for Oracle but not valid for MySQL in context of clause difference)

PHP에서 카테고리 및 하위 카테고리 목록 검색 (Retrieve Category & Subcategory list in PHP)

R과 반짝이는 다층 테이블을 만드는 방법은 무엇입니까? (How to make multiple layered table form with R and shiny?)

mysql에서 저장 프로시저가 더 효율적입니까? (In mysql, are stored procedures more efficient?)

PHP - MySQL 쿼리 문제 (PHP - Mysql query problem)

데이터베이스 값이 이미 존재하는지 확인하는 방법 (how to check if databases values are already exists)

SQL 테이블에서 누락된 날짜를 채우는 방법 (How to fill the missing date in a sql table)

잘린 잘못된 DOUBLE 값을 수정하는 방법: '정의되지 않음' 오류 (How to fix Truncated incorrect DOUBLE value: 'undefined' error)

반복되는 NotSupportedError: 인증 플러그인 'caching_sha2_password'가 지원되지 않습니다. 이전 솔루션을 시도했지만 소용이 없었습니다. (Repeated NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported tried the previous solutions to no avail)

MySQL (버전 8.0 이하) : 날짜 값을 선택하고 마일스톤 날짜 테이블에서 날짜 행을 반환합니다. (MySQL (version lower then 8.0) : Select where date value and return a row of dates from table of milestone date)







코멘트