2017-10-06 19 views
0

2つのデータベースに参加したいと思います。INNER JOIN構文エラー

  • 1データベースがkeyword_dataです(キーワードマッピング)
  • 1データベースは、Googleのランキングおよびその他のメトリック

どういうわけか、私はこれらの2つのデータベースを結合することはできませんで満たされています。

いくつかの文脈:

データセット名:可視

表1

keyword_data

VALUES

  • キーワード
  • 宇宙
  • カテゴリ
  • search_volume
  • CPC

データセット名:可視

表2

RES私は、次のSQL行を書いた日付ごとにランキングデータを受信するためにults

VALUES

  • キーワード
  • サイト
  • ポジション

SELECT Date, Position, Website FROM `visibility.results` Keyword INNER 
JOIN `visibility.keyword_data` keyword ON `visibility.results` Keyword 
= `visibility.keyword_data` keyword GROUP BY Date; 

(無成功しているほか、100他の行;-))

私は、標準のSQL(未確認レガシーSQL)でこれをGoogle BigQueryのを使用しています。

これらの2つのデータテーブルをどのように結合できますか?

+0

期待どおりの結果ですか? エラー:SELECTリスト式がグループ化されていないにも集計もされていないr.Positionを参照 はそれはそれはAS 'の位置とは何かを持っていることは可能です - 私は次のエラーを取得する :-)勉強例 –

答えて

2

SQLについてよく知っていますか?私はあなたが間違ったエイリアスを使用している、このようなものは、私はGoogleの大きなクエリで働いたことはないが、このクエリで私の意見で間違った物事のカップルがあるすべての

SELECT r.Date, r.Position, r.Website 
FROM `visibility.results` AS r 
INNER JOIN `visibility.keyword_data` AS k 
ON r.Keyword = k.keyword 
GROUP BY DATE 
+0

を提供? – Marc

+0

Google BigQueryのようなものですが、よく分かりません。ごめんなさい – kero

+1

BigQueryに固有の問題ではありません。 GROUP BYを使用すると、SELECTリストの各列はGROUP BYリストに表示するか、集計関数の結果(SUM、COUNTなど)にする必要があります。たとえば、 '日付、位置、ウェブサイトによるグループ化'が機能します。 –

0

最初に動作するはずだと思います。

まず、テーブルの名前を含めてテーブルを結合するには、テーブルが結合されているキーを入力します。また、select文で集合関数(MI​​N/MAXなど)を使用しない場合は、group by節にすべての値を含める必要があります。参考文献では、hereを参照すると構文が非常に似ているため、Microsoft SQL Serverを使用する場合に役立つソリューションを提供しています。

SELECT results.Date AS DATE, 
     ,results.Position AS POSITION 
     ,results.Website AS WEBSITE 
FROM visibility.dbo.keyword_data AS keyword_data 
INNER JOIN visibility.dbo.results AS results 
ON results.keyword = keyword_data.keyword 
GROUP BY results.Date 
     ,results.Position 
     ,results.Website