나는 'TICKER | IBM}'과 같이 특정 문자열을 포함하는 데이터베이스를 가지고 있는데, 여기에는 ticker-string으로 참조됩니다. 내 목표는 여러 문자열에 대해 매일 티커 문자열 양을 계산하는 것입니다.하나의 출력으로 여러 문자열 계산을위한 SQL 쿼리
내 데이터베이스 테이블 'tweets'에는 'tweet_id', 'created at'(dd/mm/yyyy hh/mm/ss) 및 'processed text'행이 포함됩니다. '{TICKER | IBM}'과 같은 티커 문자열은 '처리 된 텍스트'행에 있습니다.
이 순간에 나는 (다른 Stackoverflow-ers 덕분에) 하나의 티커 문자열을 계산하기위한 작업 SQL 쿼리를 가지고 있습니다. 내가 갖고 싶은 것은 여러 개의 문자열 ('{TICKER | IBM}'옆의 '{TICKER | GOOG}'및 '{TICKER | BAC}'옆에 여러 문자열을 집계 할 수있는 SQL 쿼리입니다.
다음한 시세 문자열을 계산하기위한 작업 SQL 쿼리 될 때 :
SELECT d.date, IFNULL(t.count, 0) AS tweet_count
FROM all_dates AS d
LEFT JOIN (
SELECT COUNT(DISTINCT tweet_id) AS count, DATE(created_at) AS date
FROM tweets
WHERE processed_text LIKE '%{TICKER|IBM}%'
GROUP BY date) AS t
ON d.date = t.date
궁극적 출력 따라서, 날짜와 열 열을 제공한다 {TICKER | IBM}과 열을 { TICKER | GOOG}와 {TICKER | BAC}가 있습니다.
이것이 가능한지 그리고 이에 대한 해결책이 있는지 궁금합니다. 나는 100 개 이상의 다른 증권 거래소 문자열을 가지고있다. 물론 하나씩 선택하는 것이 하나의 옵션이지만 시간이 많이 걸립니다. 만약 내가 제대로 이해하고
당신이 찾고있는 용어는 '피봇'당신은 검색과 유래에의 사용을 많이 찾을 수 있어야합니다 (많은 열이 한 행에 몇 열에 여러 행을 돌려)입니다. 또는 두 – Twelfth
조금 복잡하지만 피벗 테이블 쿼리를 작성하는 데 필요한 모든 시세 기호에 대해이 쿼리를 일반화하는 것이 좋다고 생각합니다. 또한 와일드 카드를 사용하여 '% {TICKER | IBM} % '은 (는) 테이블 짹짹에 대해 직렬 읽기를 강제 실행하고 성능을 저하시킵니다. 이 경우에는 LEFT (processed_text, Length ('{TICKER |')) = '{TICKER |' 시세 찾기. 그녀는 MySQL에서 동적 피벗 테이블의 예입니다 : http://stackoverflow.com/questions/12598120/mysql-pivot-table-query-with-dynamic-columns –