Q&A

  • SQL문좀 봐주세요.
DB는 포스트그레스를 사용합니다.



select outday, jpcode, sum(outdan)/count(*) as sumoutdan from DB명

group by outday, jpcode;



위와같은 sql문장이 있습니다.

실행시에 에러가 발생하거든요.

outdan 필드의 값을 outday, jpcode로 그룹한 숫자인 count(*)로 나눌경우 에러가 발생합니다. 그런데 이상한것은 ...다른 필드중에는 위와같은 문장이 에러없이 발생을 합니다. 테스트를 해보니까... field타입에 따라 다르더라구요.

음.. integer형은 위의 문장이 성립이 되지만... float형은 안됩니다.

그리고

필드형이 float인 경우에도 count(*) 대신에 임의의 숫자를 즉 sum(outdan)/3 이런식으로 실행을 하면 결과는 잘 나옵니다.

field 타입이 float형인 경우에 그룹된 숫자인 count(*)를 사용하여 연산을 하는 방법을 알고 계신분은 답변 부탁드립니다.

이거 꼭 해야되는데.... 급합니다. 그럼... 답변 기다리겠습니다.

1  COMMENTS
  • Profile
    허춘 2000.08.17 07:31
    임형호 wrote:

    > DB는 포스트그레스를 사용합니다.

    >

    > select outday, jpcode, sum(outdan)/count(*) as sumoutdan from DB명

    > group by outday, jpcode;

    >

    > 위와같은 sql문장이 있습니다.

    > 실행시에 에러가 발생하거든요.

    > outdan 필드의 값을 outday, jpcode로 그룹한 숫자인 count(*)로 나눌경우 에러가 발생합니다. 그런데 이상한것은 ...다른 필드중에는 위와같은 문장이 에러없이 발생을 합니다. 테스트를 해보니까... field타입에 따라 다르더라구요.

    > 음.. integer형은 위의 문장이 성립이 되지만... float형은 안됩니다.

    > 그리고

    > 필드형이 float인 경우에도 count(*) 대신에 임의의 숫자를 즉 sum(outdan)/3 이런식으로 실행을 하면 결과는 잘 나옵니다.

    > field 타입이 float형인 경우에 그룹된 숫자인 count(*)를 사용하여 연산을 하는 방법을 알고 계신분은 답변 부탁드립니다.

    > 이거 꼭 해야되는데.... 급합니다. 그럼... 답변 기다리겠습니다.

    음..왜안돼는지 알수가 없군요.. 하지만 sum(outdan)/count(*) 이 문장은..

    avg(outdan) 으로 쓰시면 될겁니다. 혹시 outdan의 field 형이 먼지요 ?