0

データを考慮してください:

 Id          Group            Value
 -----------------------------------
 1            1                10
 2            1                12
 3            1                10
 4            2                90
 5            2                10
 6            3                30
 7            4                12
 8            4                11
 9            5                10
 10           5                11

Group Byこのデータを1,2,3あるグループに4,5配置し、別のグループに配置したいと考えています。どうすればこれを行うことができますSQL Serverか?

ありがとう


編集1)

この結果が欲しい:

Groups                              Count
-----------------------------------------
Group for 1,2,3                       6
Group for 4,5                         4
4

2 に答える 2

3

これもあなたが望むことをするかもしれません:

SELECT 'Group for 1,2,3' AS GROUPS
   ,   COUNT(Id) AS Count
FROM Foo
WHERE [Group] IN (1,2,3)

UNION ALL

SELECT 'Group for 4,5' AS GROUPS
   ,   COUNT(Id) AS Count
FROM Foo
WHERE [Group] IN (4,5)

http://sqlfiddle.com/#!6/cdb82/2/0

もちろん、これは必要なグループがわかっている場合にのみ機能します。

于 2012-11-07T12:32:36.593 に答える
2

私が使用してouter applyいるので、コードをグループに複製しないでください

select
    C.Group_Name, count(*)
from Table1
    outer apply
    (
        select
            case
                when C.[Group] in (1, 2, 3) then 'Group for 1, 2, 3'
                when C.[Group] in (4, 5) then 'Group for 4, 5'
            end as Group_Name
    ) as C
group by C.Group_Name

サブクエリを使用することもできます

select
    C.Group_Name, count(*)
from 
(
    select
        case
            when T.[Group] in (1, 2, 3) then 'Group for 1, 2, 3'
            when T.[Group] in (4, 5) then 'Group for 4, 5'
        end as Group_Name,
        T.Value,
        T.Id
    from Table1 as T
) as C
group by C.Group_Name
于 2012-11-07T12:29:01.390 に答える