UNION으로 SUM이 올바르게 계산되지 않음-MYSQL

Engl12

누구든지 내 SQL 쿼리가 잘못된 곳을 지적 할 수 있습니까? 데이터를 가져올 때 SUM과 관련하여 원하는 결과를 제공하지 않습니까?

각 조합의 처음 5 개의 VAR_MEASURE_1 결과를 계산하려고합니다. 첫 번째 조합의 경우 -7.00이되어야하지만 4.00이됩니다.

편집-합계 쿼리를 사용하기 전에 데이터가 있습니다.

                VAR_MEASURE_1
16587   SBEN    -14.000 0.000   2014-09-30 00:31:24
16288   SBEN    3.000   0.000   2014-09-30 00:52:46
16288   SBEN    3.000   0.000   2014-09-30 00:53:59
16006   SBEN    5.000   0.000   2014-09-30 01:16:36
15271   SBEN    -4.000  0.000   2014-09-30 01:40:09
15786   SBEN    -6.000  0.000   2014-09-29 00:15:02
16097   SBEN    2.000   0.000   2014-09-29 00:17:34
16097   SBEN    2.000   0.000   2014-09-29 00:19:25
15771   SBEN    -9.000  0.000   2014-09-29 00:38:49
16155   SBEN    7.000   0.000   2014-09-29 01:13:26
15661   SBEN    -9.000  0.000   2014-09-28 17:40:05
14425   SBEN    1.000   0.000   2014-09-28 17:49:09
14425   SBEN    1.000   0.000   2014-09-28 17:50:24
15657   SBEN    -9.000  0.000   2014-09-28 18:02:09
15655   SBEN    -14.000 0.000   2014-09-28 18:24:31

여기 있습니다

                             SUMA
15276   Sample 1    SBEN     4.000  2014-09-30 00:31:24
15855   Sample 2    SBEN    -77.000 2014-09-29 02:40:56
15661   Sample 3    SBEN    -109.000    2014-09-28 17:40:05 







$sql = "(SELECT ID, VARIABLE, VAR_MEASURE_1, doe, CONTRACT_CODE, SUM(VAR_MEASURE_1) AS SUMA  FROM LIVE_VARCOLL WHERE doe between '2014-09-30 00:00:00' AND '2014-09-30 23:59:59' AND CONTRACT_CODE = 'DEC' AND VARIABLE = 'SBEN' LIMIT 5)
    UNION
    (SELECT ID, VARIABLE, VAR_MEASURE_1, doe, CONTRACT_CODE, SUM(VAR_MEASURE_1) AS SUMA FROM LIVE_VARCOLL WHERE doe between '2014-09-29 00:00:01' AND '2014-09-29 23:59:01' AND CONTRACT_CODE = 'DEC' AND VARIABLE = 'SBEN'
    ORDER BY doe LIMIT 5)
    UNION
    (SELECT ID, VARIABLE, VAR_MEASURE_1, doe, CONTRACT_CODE, SUM(VAR_MEASURE_1) AS SUMA FROM LIVE_VARCOLL WHERE doe between '2014-09-28 00:00:01' AND '2014-09-28 23:59:01' AND CONTRACT_CODE = 'DEC' AND VARIABLE = 'SBEN'
    ORDER BY doe LIMIT 5)
    UNION
    (SELECT ID, VARIABLE, VAR_MEASURE_1, doe, CONTRACT_CODE, SUM(VAR_MEASURE_1) AS SUMA FROM LIVE_VARCOLL WHERE doe between '2014-09-27 00:00:01' AND '2014-09-27 23:59:01' AND CONTRACT_CODE = 'DEC' AND VARIABLE = 'SBEN'
    ORDER BY doe LIMIT 5)
    UNION
    (SELECT ID, VARIABLE, VAR_MEASURE_1, doe, CONTRACT_CODE, SUM(VAR_MEASURE_1) AS SUMA FROM LIVE_VARCOLL WHERE doe between '2014-09-26 00:00:01' AND '2014-09-26 23:59:01' AND CONTRACT_CODE = 'DEC' AND VARIABLE = 'SBEN'
    ORDER BY doe LIMIT 5);";
Kleskowy

SUM()작동 방식을 잘못 해석하고 있습니다.

SUM()자신을 제한하지 않습니다 LIMIT- LIMIT결과에서 얻고 자하는 행 수만 SQL에 알려줍니다. 따라서 귀하의 경우 각 UNION부분에는 처음 5 개뿐만 아니라 요구 사항을 충족하는 모든 행의 SUM이 있습니다.

특정 조건을 충족하는 테이블의 처음 5 개 행의 합계를 선택하려면 다음 예와 같이 수행해야합니다. 하위 쿼리는 5 개의 행만 검색하고 외부 쿼리는이를 합산 할 수 있습니다.

명확하게 말하면 UNIONed 쿼리 의 첫 번째 부분데이터 만 검색하는 SQL 입니다. 다음 UNION과 같이 다른 부분을 시도하고 만들 수 있습니다 .

SELECT tmp.*, SUM(tmp.VAR_MEASURE_1) as SUMA 
   FROM (
      SELECT ID, VARIABLE, VAR_MEASURE_1, doe, CONTRACT_CODE
      FROM LIVE_VARCOLL 
      WHERE doe between '2014-09-30 00:00:00' 
         AND '2014-09-30 23:59:59' 
         AND CONTRACT_CODE = 'DEC' 
         AND VARIABLE = 'SBEN' 
      ORDER BY doe
      LIMIT 5 
   ) tmp 

따라서 UNION은 다음과 같아야합니다.

(SELECT tmp.*, SUM(tmp.VAR_MEASURE_1) as SUMA 
    FROM (
       SELECT ID, VARIABLE, VAR_MEASURE_1, doe, CONTRACT_CODE
       FROM LIVE_VARCOLL 
       WHERE doe between '2014-09-30 00:00:00' 
          AND '2014-09-30 23:59:59' 
          AND CONTRACT_CODE = 'DEC' 
          AND VARIABLE = 'SBEN' 
       ORDER BY doe
       LIMIT 5 
    ) tmp)
UNION
(    SELECT tmp.*, SUM(tmp.VAR_MEASURE_1) as SUMA 
    FROM (
       SELECT ID, VARIABLE, VAR_MEASURE_1, doe, CONTRACT_CODE
       FROM LIVE_VARCOLL 
       WHERE doe between '2014-09-29 00:00:00' 
          AND '2014-09-29 23:59:59' 
          AND CONTRACT_CODE = 'DEC' 
          AND VARIABLE = 'SBEN' 
       ORDER BY doe
       LIMIT 5 
    ) tmp)
UNION
( .... more sqls here if needed ... )

그러나 나는 당신이 일별로 결과를 얻고 싶다고 가정하고, " 하루에 처음 5 개 행 "이 중요 하지 않다면 , 단순히 일별로 그룹화 된 합계 결과를 선택할 수 있습니다 DATE(doe).

 SELECT ID, VARIABLE, VAR_MEASURE_1, doe, DATE(doe) as date_doe, CONTRACT_CODE, SUM(VAR_MEASURE_1) AS SUMA
 FROM LIVE_VARCOLL 
 WHERE CONTRACT_CODE = 'DEC' 
    AND VARIABLE = 'SBEN' 
 GROUP BY DATE(doe)
 ORDER BY DATE(doe)

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

지난 12 개월 SUM이 powerBI에서 올바르게 계산되지 않음

분류에서Dev

계산 정렬이 올바르게 정렬되지 않음

분류에서Dev

식이 올바르게 계산되지 않음

분류에서Dev

Java, Blackjack이 올바르게 계산되지 않음

분류에서Dev

MySQL Server 5.7이 올바르게 설치되지 않음

분류에서Dev

mysql_result가 mysqli_data_seek가 올바르게 계산되지 않음

분류에서Dev

FancyBox 이미지가 올바르게로드되지 않음

분류에서Dev

phpMyAdmin이 올바르게로드되지 않음

분류에서Dev

iframe src URL이 올바르게로드되지 않음

분류에서Dev

제거 된 foreach 항목이 올바르게 계산되지 않음

분류에서Dev

제거 된 foreach 항목이 올바르게 계산되지 않음

분류에서Dev

PHP에서 날짜 차이가 올바르게 계산되지 않음

분류에서Dev

반복이 올바르게 계산되지 않습니다.

분류에서Dev

window.location이 새 값으로 올바르게 설정되지 않음

분류에서Dev

PHP 배열이 JSON으로 올바르게 포맷되지 않음

분류에서Dev

DecimalFormat이 소수점 두 자리로 올바르게 반올림되지 않음

분류에서Dev

이진 파일이 Java로 올바르게 읽히지 않음

분류에서Dev

바이트 배열이 파일로 올바르게 인쇄되지 않음

분류에서Dev

Iceweasel이 다운로드를 올바르게 열지 않음

분류에서Dev

Stb 이미지가 데이터에 올바르게로드되지 않음

분류에서Dev

로컬 웹 페이지가 올바르게로드되지 않음

분류에서Dev

사용자 지정 셀이 올바르게로드되지 않음

분류에서Dev

탐색 후 온천 UI 페이지가 올바르게로드되지 않음

분류에서Dev

GoogleAPI PanoView StreetView 버그-이미지가 올바르게로드되지 않음

분류에서Dev

DateTime ToString이 ddMMy 지정자로 올바르게 형식화되지 않음

분류에서Dev

NSIS 설치 프로그램 이름이 올바르게 표시되지 않음

분류에서Dev

16.04 이후 Ubuntu 데스크탑이 올바르게로드되지 않음

분류에서Dev

JQuery Slider로 최소 최대 값이 올바르게 설정되지 않음

분류에서Dev

런타임시 Typescript 경로 별칭이 올바르게 확인되지 않음

Related 관련 기사

  1. 1

    지난 12 개월 SUM이 powerBI에서 올바르게 계산되지 않음

  2. 2

    계산 정렬이 올바르게 정렬되지 않음

  3. 3

    식이 올바르게 계산되지 않음

  4. 4

    Java, Blackjack이 올바르게 계산되지 않음

  5. 5

    MySQL Server 5.7이 올바르게 설치되지 않음

  6. 6

    mysql_result가 mysqli_data_seek가 올바르게 계산되지 않음

  7. 7

    FancyBox 이미지가 올바르게로드되지 않음

  8. 8

    phpMyAdmin이 올바르게로드되지 않음

  9. 9

    iframe src URL이 올바르게로드되지 않음

  10. 10

    제거 된 foreach 항목이 올바르게 계산되지 않음

  11. 11

    제거 된 foreach 항목이 올바르게 계산되지 않음

  12. 12

    PHP에서 날짜 차이가 올바르게 계산되지 않음

  13. 13

    반복이 올바르게 계산되지 않습니다.

  14. 14

    window.location이 새 값으로 올바르게 설정되지 않음

  15. 15

    PHP 배열이 JSON으로 올바르게 포맷되지 않음

  16. 16

    DecimalFormat이 소수점 두 자리로 올바르게 반올림되지 않음

  17. 17

    이진 파일이 Java로 올바르게 읽히지 않음

  18. 18

    바이트 배열이 파일로 올바르게 인쇄되지 않음

  19. 19

    Iceweasel이 다운로드를 올바르게 열지 않음

  20. 20

    Stb 이미지가 데이터에 올바르게로드되지 않음

  21. 21

    로컬 웹 페이지가 올바르게로드되지 않음

  22. 22

    사용자 지정 셀이 올바르게로드되지 않음

  23. 23

    탐색 후 온천 UI 페이지가 올바르게로드되지 않음

  24. 24

    GoogleAPI PanoView StreetView 버그-이미지가 올바르게로드되지 않음

  25. 25

    DateTime ToString이 ddMMy 지정자로 올바르게 형식화되지 않음

  26. 26

    NSIS 설치 프로그램 이름이 올바르게 표시되지 않음

  27. 27

    16.04 이후 Ubuntu 데스크탑이 올바르게로드되지 않음

  28. 28

    JQuery Slider로 최소 최대 값이 올바르게 설정되지 않음

  29. 29

    런타임시 Typescript 경로 별칭이 올바르게 확인되지 않음

뜨겁다태그

보관