0

我正在将一些查询从 MySQL 转移到 PostgreSQL,但我对如何重写以下查询以在 PostgreSQL 中工作感到困惑: SUM(phoneid IN (1, 2, 6, 8)) AS completedcalls

我原本以为我可以做 SUM(SELECT phoneid FROM myTable WHERE phoneid = 1 OR phoneid = 2等,但我不相信你可以在一个总和中拥有一个 SELECT 。

我也尝试使用WITH查询,但没有运气让它工作。

4

3 回答 3

4
count(phoneid in (1,2,6,8) or null)
于 2013-07-29T13:32:28.350 回答
4

如何使用CASE

SUM(CASE WHEN phoneid IN (1, 2, 6, 8) THEN 1 ELSE 0 END)
于 2013-07-29T13:26:33.827 回答
2

bool可以转换为integer

SUM(CAST(phoneid IN (1, 2, 6, 8) AS INTEGER)) AS completedcalls
于 2013-07-29T13:33:53.707 回答