首页 > 解决方案 > SQL 中的 SELECT 语句用于过滤掉多个条目

问题描述

我想查询一个价格关联了多少个不同的账户。

name           | price | acc_no

Allnet Flat S  | 14.99 |   1
Allnet Flat XL | 24.99 |   2
Data Flat XL   | 14.99 |   2
Data Flat S    |  9.99 |   1
Family Flat S  | 29.99 |   3
Family Flat XXL| 59.99 |   4
SMS Flat S     |  9.99 |   1

我最接近的解决方案是

SELECT price, COUNT(acc_no) FROM "table" GROUP BY price

这里的问题是它显示了两个与 9.99 关联的帐户,尽管它是相同的帐号。我怎样才能让它只计算同一个帐户一次?

标签: sqloracle

解决方案


DISTINCTCOUNT函数中使用:

SELECT price, COUNT(DISTINCT account_no) FROM "table" GROUP BY price
--                  ^^^^^^^^

推荐阅读