【问题标题】:Select percentage of rows that have a certain value - SQL选择具有特定值的行的百分比 - SQL
【发布时间】:2014-06-12 18:15:14
【问题描述】:

假设我在 Sequel Pro 中有这样的表格:

SaleID    VendorID
1             A
2             C
3             E
4             C
5             D

我想找出供应商 C 是供应商的销售额百分比。 (显然在这种情况下它是 40%,但我正在使用更大的表)。我该怎么做?我正在考虑使用Count 函数,但我不确定我将如何做到这一点。谢谢!

【问题讨论】:

  • 顺便说一下,我知道理想情况下我不会有字母作为 ID,但我表中的实际值是字母字符串,而不是数字。

标签: sql count


【解决方案1】:
select sum(case when vendorID = 'C' then 1 else 0 end) * 100 / count(*)
from your_table

【讨论】:

  • sum(vendorID = 'C') * 100 / count(*) 顺便说一句要短得多:)
  • @Markus:这适用于 MySQL,但不适用于大多数其他数据库。而且由于没有标记 MySQL ...
  • OP 声明使用使用 MySQL 语法的 Sequel Pro - 因此,它是一个有效的快捷方式(顺便说一句。标签 sql 也不会反对这个解决方案)。无论如何,总是有必要检查您的数据库支持什么,这也是正确的:) 为了说明“大多数”,我想看看这个来源;我以相反的方式经历了它(至少对于过去十年的任何技术而言)。
  • @Markus:自己检查一下 Oracle 和 SQL Server 等其他系统:sqlfiddle.com。市长数据库系统不支持。
猜你喜欢
  • 1970-01-01
  • 2019-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
  • 2020-10-06
相关资源
最近更新 更多