Oracle10g 是否可以按某些值进行分组?

Oracle10g 是否可以按某些值进行分组?,oracle10g,Oracle10g,我有一个具有以下值的oracle数据库表 +------+--------+ | id | Name | +------+--------+ | 0 | One | | 1 | Two | | 2 | Three | | 3 | four | | 4 | One | | 5 | One | | 6 | Two | | 7 | five | +------+--------+ 我想数一数名为“一”、“

我有一个具有以下值的oracle数据库表

+------+--------+
| id   | Name   |
+------+--------+
|    0 | One    |
|    1 | Two    |
|    2 | Three  |
|    3 | four   |
|    4 | One    |
|    5 | One    |
|    6 | Two    |
|    7 | five   |
+------+--------+
我想数一数名为“一”、“二”的行数,其余的行数。 结果集应该是

+------+--------+
| name | count  |
+------+--------+
|  One | 3      |
+------+--------+
|  Two | 2      |
+------+--------+
|  Rest| 3      |
+------+--------+
有什么帮助吗

select
  case name
    when 'One' then 'One'
    when 'Two' then 'Two'
    else 'Rest'
  end name,
  count(*)
from
  my_table
group by
  case name
    when 'One' then 'One'
    when 'Two' then 'Two'
    else 'Rest'
  end
避免重复:

select
  name,
  count(*)
from (
  select
    case name
      when 'One' then 'One'
      when 'Two' then 'Two'
      else 'Rest'
    end name
  from
    my_table)
group by
  name
避免重复:

select
  name,
  count(*)
from (
  select
    case name
      when 'One' then 'One'
      when 'Two' then 'Two'
      else 'Rest'
    end name
  from
    my_table)
group by
  name

我会选择Case而不是Decode()--它符合ANSI标准,更灵活,具有短路求值功能,并以更符合SQL的方式处理空值。我会选择Case而不是Decode()--它符合ANSI标准,更灵活,具有短路求值功能,并以更符合SQL的方式处理空值。