我做不到:
>>> 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;