나는 'tweets'라는 데이터베이스를 가지고 있습니다. 데이터베이스 'tweets'에는 'tweet_id', 'created at'(dd/mm/yyyy hh/mm/ss), 'classified'및 'processed text'행이 포함됩니다. '처리 된 텍스트'행에는 {TICKER | IBM}과 같은 특정 문자열이 있으며 여기에는 시세 문자열로 참조됩니다.SQL : 하루 평균 평균 값
내 목표는 티커 문자열 당 하루 평균 '분류'값을 얻는 것입니다. '분류 된'행은 숫자 값 -1, 0 및 1을 포함합니다. 이 시점에서 나는 일별 시세 표시 문자열에 대해 '분류'의 평균 값에 대한 작동중인 SQL 쿼리를 사용합니다. 아래 스크립트를 참조하십시오. {| IBM TICKER}
- 이 같은 제로 'processed_text 년대가 있었다있는 일을 포함하지 않습니다
SELECT Date(`created_at`) , AVG(`classified`) AS Classified FROM `tweets` WHERE `processed_text` LIKE '%{TICKER|IBM}%' GROUP BY Date(`created_at`)
그러나이 스크립트 두 가지 문제가 있습니다. 그러나 나는이 경우에 가치 0을 뱉어 내고 싶다.
- 나는 100 개 이상의 서로 다른 티커 문자열을 가지고 있으므로 동시에 여러 문자열을 처리 할 수있는 스크립트를 갖고 싶어합니다. 나도 수작업으로 그들을 하나씩 할 수는 있지만, 이것은 나에게 엄청난 시간을 요구할 것이다. 내가 시세 문자열 당 'tweet_id 년대를 카운트하는 비슷한 질문을했다 때
는, 누군가가 다른 다음 사용 제안 :
SELECT d.date, coalesce(IBM, 0) as IBM, coalesce(GOOG, 0) as GOOG,
coalesce(BAC, 0) AS BAC
FROM dates d LEFT JOIN
(SELECT DATE(created_at) AS date,
COUNT(DISTINCT CASE WHEN processed_text LIKE '%{TICKER|IBM}%' then tweet_id
END) as IBM,
COUNT(DISTINCT CASE WHEN processed_text LIKE '%{TICKER|GOOG}%' then tweet_id
END) as GOOG,
COUNT(DISTINCT CASE WHEN processed_text LIKE '%{TICKER|BAC}%' then tweet_id
END) as BAC
FROM tweets
GROUP BY date
) t
ON d.date = t.date;
는이 스크립트는 시세 스트링 당 tweet_ids을 계산 완벽하게 일했다. 그러나 내가 명시한 바와 같이, 나는 종목별 평균 분류 점수를 찾지 않을 것이다. 따라서 내 질문은 다음과 같습니다. 누군가가이 스크립트를 조정하여 일일 텔퍼 문자열 당 평균 classified
점을 계산할 수있는 방법을 보여줄 수 있습니까?