同じ問題で既にいくつかの質問がありますが、私はそれらをすべて見ていますが、解決策はまだ見つかりません。 同じ名前の列(device_id)を2つの表から結合してカウントしたいとします。Python上で同じカラム名を持つ2つのテーブルのSQL結合
列名:イベントとpythonの出力
import pandas as pd
from sqlalchemy import create_engine # database connection
db_engine = create_engine('sqlite:///devices-train.db')
join_devices = pd.read_sql_query('SELECT device_id, count(device_id), gender_age_train.device_id, count(gender_age_train.device_id) FROM events JOIN gender_age_train on events.device_id = gender_age_train.device_id GROUP BY device_id', db_engine)
print join_devices
をgender_age_trainです:
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) ambiguous column name: device_id [SQL: 'SELECT device_id, count(device_id), gender_age_train.device_id, count(gender_age_train.device_id) FROM events JOIN gender_age_train on events.device_id = gender_age_train.device_id GROUP BY device_id']
ありがとうございました!今はエラーはありませんが、出力によって私はデータについて考えるようになります。 60.865デバイスは「イベント」で利用でき、74.645デバイスは「gender_age_train」で利用可能です。しかし、どのように今参加することができます23.309? –
@harun。 。 。このクエリは、2つのテーブル間で一致するデバイスのみをカウントするためです。 –