테스트 사이트 - 개발 중인 베타 버전입니다

텍스트 입력된 row 값들의 text 평균(avg) 텍스트를 구할수 있을까요? 채택완료

주민 2년 전 조회 1,990

안녕하세요 mysql db 에 table name : test date        time    person 20221219  121223  사람1 20221219  112223  사람2 20221219  111223  사람3 20221219  101123  사람1 20221219  100923  사람3 20221219  100223  사람1 select avg(person) from test 해 보았는데 숫자 값이 아니라서 그런지 text 값은 avg 값이 0으로만 리턴되던데요 어떻게 하면 위 형식의 데이터에서 평균 데이터 텍스트를 뽑을 수 있나요? 즉 avg는 사람3 이 뽑혀야 하는데 안되어서 문의드립니다.

 

min(person) 은 사람2 max(person) 은 사람1 은 뽑힙니다. 귀한 답변 부탁드립니다. 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
2년 전

select concat('사람', avg(right(person, 1))) from test

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

주민
2년 전
date time wind
20221219 121223 북풍
20221219 112223 남서풍
20221219 111223 북서풍
20221219 101123 남동풍
20221219 100923 남동풍
20221219 100223 남서풍
20221219 100221 남풍
20221219 100211 남동풍
20221219 100141 남풍
이런씩으로 바람 방향같은 경우는 어떻게 하면 좋을까요?
마르스컴퍼니
2년 전
불가능합니다.

댓글을 작성하려면 로그인이 필요합니다.

2년 전

1. select distinct wind from test 하시면 wind 종류만 나오겠죠.

while ( 각_wind종류 ) {

    select count(*) from test where wind = '각_wind종류' 하여 건수를 추출하고,

    $windKindArray[각_wind종류] 배열에 합산을 해 줍니다.

}

2. 그러고나면 저 배열은

$windKindArray[동풍] = 3;

$windKindArray[북동풍] = 7;

$windKindArray[남동풍] = 2;

... 등이 되겠죠.

3. 위 3건만 있다고 할 때 배열의 합은 12이고 평균은 4입니다.

4와 가장 가까운 건수의 바람종류를 추출하시면 3건인 동풍이 되겠지요.

최다건수는 북동풍이고 최소건수는 남동풍이겠고요.

즉 이 수치는 가장 많은 쪽으로 분 풍향, 가장 적은 쪽으로 분 풍향, 그리고 가장 중간치로 분 풍향을

구하는 거겠네요.

원하시는 방향이 맞나요? 아니더라도 원하는 값을 구하는 데 참고가 되면 좋겠네요. 

 

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

2년 전

windNum 정도의 필드를 추가하시고요.

북풍은 0, 동풍은 90, 남풍은 180, 서풍은 270,

북동풍은 45, 남동풍은 135 등으로 이 필드를 세팅해 주시고요.

그리고서 이 필드의 평균을 추출하신 후 text로 변환을 하시면 될 것 같네요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

엑스엠엘
2년 전
각도로 하면,
10도
350도
평균은 180이 되어 방향으로만 보면
반대 방향이 나옵니다.
벡터로 처리하면 될 듯하네요
주민
2년 전
두분 답변 감사드립니다. 소스로 어떻게 표현할지 도저히 감이 안 잡히는데 어떻게 할지 부탁드립니다.

댓글을 작성하려면 로그인이 필요합니다.

그누위즈

mysql의 max, min은 문자열을 사용할 경우

해당 열에 정의한 정렬 순서에서 가장 높고 낮은 값을 찾아줍니다.

하지만 avg 함수의 경우 문자열은 평균치를 구할 수 없습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

주민
2년 전
가능한 방법은 없나요? 소스로 다 읽어들여서 변수 처리하는 방법도 잘 모르겠네요..

date time wind
20221219 121223 북풍
20221219 112223 남서풍
20221219 111223 북서풍
20221219 101123 남동풍
20221219 100923 남동풍
20221219 100223 남서풍
20221219 100221 남풍
20221219 100211 남동풍
20221219 100141 남풍

숫자로 치환해서 avg 구한뒤에 다시 text 로 값을 변수로 변환하는 방법도 가능한가요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인