私はできません:
>>> 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」データベース テーブル内の一意のユーザーの数)。
これは一般的なケースでは正しくありません。たとえば、次の表では 2 ではなく 1 が返されます。
col_a | col_b
----------------
xx | yy
xxy | y
次の SQL を生成する方法はありますか (少なくとも postgresql では有効です)。
SELECT count(distinct (col_a, col_b)) FROM my_table;