sql - SQL 中的 SELECT 语句用于过滤掉多个条目

标签 sql oracle

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

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 的帐户,尽管它是同一个帐号。我怎样才能让它只对同一个帐户计数一次?

最佳答案

COUNT 函数中使用 DISTINCT:

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

关于sql - SQL 中的 SELECT 语句用于过滤掉多个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51030263/

相关文章:

sql - 开源统计服务器?

oracle - Oracle 中的审计

sql - 加速拆分查询

mysql - 什么是好的/健康的 mysql 查询执行时间?

mysql - 如何根据另一列查找一列的最后六行(动态)总和

sql - 有没有更好的方法从 hh :mm:ss to hhmmss? 转换 SQL 日期时间

mysql - 在存储数组的列中搜索

oracle - 如何解开批量plsql包?

oracle - Oracle Bug 数据库在哪里?

oracle - INSERT ALL 带条件 PL/SQL