У меня есть две таблицы
class MinMaxDim(db.Model):
min_max_id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, nullable=False)
room_id = db.Column(db.Integer, nullable=True)
min_temp = db.Column(db.Integer, nullable=True)
max_temp = db.Column(db.Integer, nullable=True)
min_humidity = db.Column(db.Integer, nullable=True)
max_humidity = db.Column(db.Integer, nullable=True)
min_pressure = db.Column(db.Integer, nullable=True)
max_pressure = db.Column(db.Integer, nullable=True)
class AvgDim(db.Model):
avg_id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, nullable=False)
room_id = db.Column(db.Integer, nullable=True)
avg_temp = db.Column(db.Integer, nullable=True)
avg_humidity = db.Column(db.Integer, nullable=True)
avg_pressure = db.Column(db.Integer, nullable=True)
Требования:
- Я пошлю room_id в качестве аргумента функции, она должна вернуть последние 7 дни min_temp, max_temp и avg_temp из двух таблиц.
Что я пробовал:
Я создал функцию, в которой я использовал group_by функция, но я получаю эту ошибку:
(psycopg2.errors.GroupingError) column "min_max_dim.min_max_id" must appear in the GROUP BY clause
or be used in an aggregate function
Мой код :
def get_weekly_dim_dataInfo(room_id):
try:
get_all_data = db.session.query(MinMaxDim).outerjoin(AvgDim, MinMaxDim.user_id ==
MinMaxDim.tenant_id).group_by(MinMaxDim.room_id).all()
get_all_data_schema = MinMaxDimSchema(many=True).dump(get_all_data)
get_all_avg_data_schema = AvgDimSchema(many=True).dump(get_all_data)
print(get_all_data)
except Exception as e:
print(e)
return False