我做不到:
>>> session.query(
func.count(distinct(Hit.ip_address, Hit.user_agent)).first()
TypeError: distinct() takes exactly 1 argument (2 given)
我可以做:
session.query(
func.count(distinct(func.concat(Hit.ip_address, Hit.user_agent))).first()
在一个名为“页面加载”(pageload)的数据库表中,唯一用户数量计数是没问题的。
但对于一般情况,这并不正确。例如,下面的表会得到1而不是2:
col_a | col_b
----------------
xx | yy
xxy | y
有没有办法生成以下SQL语句(至少在PostgreSQL中是有效的)?
SELECT count(distinct (col_a, col_b)) FROM my_table;