관련 테이블에서 두 번 계산하는 mysql 쿼리

Paulducsantos

원하는 방식으로 쿼리를 가져 오는 데 문제가 있습니다. 나는 2 개의 테이블이 있습니다 : 구절과 질문 테이블

질문 테이블에는 Passage의 외래 키가 있습니다. 질문 테이블에는 활성, 비활성 또는 검토 상태 인 열이 있습니다. 나는 활성 질문의 수를 얻을 수 있었지만 지금은 검토에서 질문의 수를 얻고 싶지만 정확한 것을 얻을 수없는 것 같습니다. 다음은 내가 지금까지 생각 해낸 것입니다. 그러나 questionsinreview 열은 나에게 numquestions와 같은 숫자를 제공합니다.

SELECT 
p."id",  
COUNT(q."PassageId") as numQuestions, 
COUNT(q2."PassageId") AS questionsInReview, 
ROUND(AVG(q."level")) as "questionLevel" 
FROM 
"Passages" as p 
LEFT OUTER JOIN "Questions" as q ON p.id=q."PassageId" AND q."status" = 'active'
LEFT OUTER JOIN "Questions" as q2 on p.id=q2."PassageId" where q2."status" = 'review'
GROUP BY p.id 
ORDER BY p.id ASC

검토중인 질문 수도 가져올 수 있도록 쿼리를 설정하려면 어떻게해야합니까?

편집하다:

여기에 제안 된 것을 가지고 놀다가 내가 일하게 된 것입니다.

해결책:

SELECT 
   p.id, 
   SUM(CASE WHEN q."status" = 'active' THEN 1 ELSE 0 END) AS numQuestions, 
   SUM(CASE WHEN q."status" = 'review' THEN 1 ELSE 0 END) AS questionsInReview, 
   ROUND(AVG(CASE WHEN q."status" = 'active' THEN q."level" ELSE Null END)) as questionLevel
FROM "Passages" AS p 
LEFT JOIN "Questions" as q ON p.id = q."PassageId"
GROUP BY p.id 
ORDER BY p.id ASC
줄리앙 팔라 르

다음과 같은 것은 어떻습니까?

SELECT p.id,  
       COUNT(q.id) AS numQuestions, 
       SUM(q.status = "review") AS questionsInReview, 
       ROUND(AVG(if(q.status = "active", q.level, null)) as questionLevel
FROM Passages AS p 
LEFT JOIN Questions as q ON p.id = q.PassageId AND q.status = 'active'
GROUP BY p.id 
ORDER BY p.id ASC

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

MySQL 쿼리 : 관련없는 두 테이블에서 합계 가져 오기

분류에서Dev

두 번째 테이블에서 값을 조회하는 MySQL 쿼리

분류에서Dev

두 테이블 Mysql을 결합하는 쿼리의 계산

분류에서Dev

1 대 다 관계에서 쿼리를 작성하여 SQL 쿼리의 두 번째 테이블에서 임의의 1 레코드를 얻는 방법

분류에서Dev

MySql : 서로 다른 테이블의 두 열에서 계산하는 단일 쿼리

분류에서Dev

MYSQL : 두 테이블을 쿼리하고 두 번째 테이블의 결과를 배열에 조인

분류에서Dev

mysql 쿼리를 사용하여 테이블에서 두 번째 최대 값 찾기

분류에서Dev

하나의 테이블에서 MySQL 쿼리-동일한 필드를 두 번 선택

분류에서Dev

MySQL 테이블에서 한두 번만 투표 계산

분류에서Dev

MYSQL : 값이 두 번째 테이블에 있는지 여부에 따라 테이블에서 1 또는 0 쿼리 결과 가져 오기

분류에서Dev

MYSQL-다중 테이블 쿼리의 한 열에서 두 번 선택

분류에서Dev

두 개의 MySQL 쿼리를 하나에, 두 번째 쿼리는 첫 번째 쿼리를 기반으로 함

분류에서Dev

두 번째 테이블의 중복이 관련된 왼쪽 조인을 사용하십시오-MYSQL

분류에서Dev

두 테이블에서 일부 필드를 선택하고 계산하기위한 MySQL 쿼리

분류에서Dev

두 개의 관련 테이블에서 행 계산

분류에서Dev

관련 테이블에서 범위 필터를 사용하여 MySQL 쿼리 최적화

분류에서Dev

하나의 열을 합산하고 공통 값을 기준으로 두 테이블에서 다른 열을 계산하는 MySQL 쿼리?

분류에서Dev

Django-관련 이름으로 두 번 필터링하면 쿼리 세트의 개체가 중복됩니다.

분류에서Dev

여러 열이 있지만 여러 번 중복되는 두 테이블에 대한 MySQL 조인 쿼리

분류에서Dev

관계없이 두 테이블을 조인하는 SQL 쿼리

분류에서Dev

두 번째 테이블에서 세부 정보를 가져 오는 SQL 쿼리

분류에서Dev

mysql에서 두 개의 관련 테이블 조인

분류에서Dev

테이블 관계 문제-두 번째 테이블에서 정보 수집

분류에서Dev

하나의 쿼리에서 다른 레코드가있는 mysql 두 테이블

분류에서Dev

두 테이블에서 선택하고 세 번째 테이블과 비교할 SQL 쿼리

분류에서Dev

MySQL 쿼리-관련 테이블에 하나의 필드가없는 경우에도 컨설팅 반환

분류에서Dev

laravel 관계 쿼리를 두 번?

분류에서Dev

세 번째 테이블 인 SQL Server를 사용하여 관련된 두 테이블에서 데이터를 검색하는 방법

분류에서Dev

MySQL-첫 번째 테이블에서는 작동하지만 두 번째 테이블에서는 작동하지 않는 구조가 동일한 WHERE 절의 NOT IN 쿼리

Related 관련 기사

  1. 1

    MySQL 쿼리 : 관련없는 두 테이블에서 합계 가져 오기

  2. 2

    두 번째 테이블에서 값을 조회하는 MySQL 쿼리

  3. 3

    두 테이블 Mysql을 결합하는 쿼리의 계산

  4. 4

    1 대 다 관계에서 쿼리를 작성하여 SQL 쿼리의 두 번째 테이블에서 임의의 1 레코드를 얻는 방법

  5. 5

    MySql : 서로 다른 테이블의 두 열에서 계산하는 단일 쿼리

  6. 6

    MYSQL : 두 테이블을 쿼리하고 두 번째 테이블의 결과를 배열에 조인

  7. 7

    mysql 쿼리를 사용하여 테이블에서 두 번째 최대 값 찾기

  8. 8

    하나의 테이블에서 MySQL 쿼리-동일한 필드를 두 번 선택

  9. 9

    MySQL 테이블에서 한두 번만 투표 계산

  10. 10

    MYSQL : 값이 두 번째 테이블에 있는지 여부에 따라 테이블에서 1 또는 0 쿼리 결과 가져 오기

  11. 11

    MYSQL-다중 테이블 쿼리의 한 열에서 두 번 선택

  12. 12

    두 개의 MySQL 쿼리를 하나에, 두 번째 쿼리는 첫 번째 쿼리를 기반으로 함

  13. 13

    두 번째 테이블의 중복이 관련된 왼쪽 조인을 사용하십시오-MYSQL

  14. 14

    두 테이블에서 일부 필드를 선택하고 계산하기위한 MySQL 쿼리

  15. 15

    두 개의 관련 테이블에서 행 계산

  16. 16

    관련 테이블에서 범위 필터를 사용하여 MySQL 쿼리 최적화

  17. 17

    하나의 열을 합산하고 공통 값을 기준으로 두 테이블에서 다른 열을 계산하는 MySQL 쿼리?

  18. 18

    Django-관련 이름으로 두 번 필터링하면 쿼리 세트의 개체가 중복됩니다.

  19. 19

    여러 열이 있지만 여러 번 중복되는 두 테이블에 대한 MySQL 조인 쿼리

  20. 20

    관계없이 두 테이블을 조인하는 SQL 쿼리

  21. 21

    두 번째 테이블에서 세부 정보를 가져 오는 SQL 쿼리

  22. 22

    mysql에서 두 개의 관련 테이블 조인

  23. 23

    테이블 관계 문제-두 번째 테이블에서 정보 수집

  24. 24

    하나의 쿼리에서 다른 레코드가있는 mysql 두 테이블

  25. 25

    두 테이블에서 선택하고 세 번째 테이블과 비교할 SQL 쿼리

  26. 26

    MySQL 쿼리-관련 테이블에 하나의 필드가없는 경우에도 컨설팅 반환

  27. 27

    laravel 관계 쿼리를 두 번?

  28. 28

    세 번째 테이블 인 SQL Server를 사용하여 관련된 두 테이블에서 데이터를 검색하는 방법

  29. 29

    MySQL-첫 번째 테이블에서는 작동하지만 두 번째 테이블에서는 작동하지 않는 구조가 동일한 WHERE 절의 NOT IN 쿼리

뜨겁다태그

보관