我搜索了SO和谷歌,但找不到这个答案:
我正在尝试在postgresql中运行此查询:
select * from user_ips where IP = '%s' group by session_cookie order by datetime
但我得到了:
psycopg2.ProgrammingError: column "user_ips.ip" must appear in the GROUP BY clause or be used in an aggregate function
我对psql不是很熟悉,我之前主要使用过mysql。为什么我必须在group by
中使用与where子句中相同的列,以及使用聚合函数意味着什么?
如何解决这个问题?
由于
答案 0 :(得分:2)
由于我在查询中没有看到group by子句的任何需要,请尝试以下查询:
SELECT *
FROM user_ips
WHERE IP = '%s'
ORDER BY datetime
当您尝试通过说出IP地址对记录进行分组并且您尝试应用MIN / MAX / SUM / AVG等集合函数时,应该使用