랜두두
82
2019-10-10 17:06:55
7
137

마리아DB 시간 별 데이터 차이 쿼리





D_date 9시 데이터인 25와 10시 데이터인 1125 데이터 차이를 구하고 싶은데

쿼리를 어떻게 구성해야할지 감이 안잡히네요.. 

ex) 1125 - 25 = 1100 값이 나오게끔 구성하고 싶습니다.. 도와주세요


0
0
  • 답변 7

  • 그만물어봐
    355
    2019-10-10 17:24:55

    ????????????????????

    어디에다가 표시하고 싶으신건가요?

    select 할때 표시하고 싶으신건가요?

    아니면 엑셀 같은곳에 표를 그리시고

    데이터 결과를 예시로 보여주세요~!

    0
  • 유리세계
    2k
    2019-10-10 18:23:17

    TIMEDIFF 함수를 이용하시고...

    자기 자신을 셀프조인해야 이전 값을 어떻게든 구하겠네요

    0
  • 랜두두
    82
    2019-10-10 21:11:48

    @그만물어봐 넵 SELECT 로 데이터를 표시하고 싶습니당


    @유리세계 셀프조인을 한번 더 해야하나요? 

    0
  • 그만물어봐
    355
    2019-10-11 09:28:56

    랜두두

    결과가 어떻게 나와야하는지 표로 그려주세요~!

    0
  • 랜두두
    82
    2019-10-11 13:49:46

    @그만 물어봐 


    D_date 컬럼에 있는 9시 F_data 값 25와 10시 F_data 값 1125 의 차이를 계산값 컬럼에 표시하려고 합니당

    임의로 필드를 생성해야할텐데 9시 의 값과 10시 의 값의 차이를 어떻게 쿼리문을 구성해야할지 모르겠네요...

    0
  • 그만물어봐
    355
    2019-10-13 03:04:37
    0
  • 그만물어봐
    355
    2019-10-13 04:11:42 작성 2019-10-13 04:12:02 수정됨

    랜두두

    아래는 예시 입니다~!
    (이제보니 표에 값을 잘못 알려주셨네요 ㅎㅎ;;)

    (참고로 WITH 문은 mariaDB 10.2.1 부터 사용 가능하니 안되시면 SELECT 절만 참고하세요~)


    WITH T_TEST AS
    (
    	SELECT 1 AS C_PCODE
    		  , '2019-01-01 09:00' AS D_DATE
    		  , 25 AS F_DATA
    		  , 28 AS F_DATA2
    	  FROM DUAL
    	UNION ALL
    	SELECT 1 AS C_PCODE
    		  , '2019-01-01 10:00' AS D_DATE
    		  , 1125 AS F_DATA
    		  , 1125 AS F_DATA2
    	  FROM DUAL
    	UNION ALL
    	SELECT 1 AS C_PCODE
    		  , '2019-01-01 11:00' AS D_DATE
    		  , 1200 AS F_DATA
    		  , 0 AS F_DATA2
    	  FROM DUAL
    )
    SELECT A.*
    	  , A.F_DATA - LAG(F_DATA, 1) OVER(PARTITION BY A.C_PCODE ORDER BY A.D_DATE) AS "계산값"
      FROM T_TEST A


    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.