-1

テーブルには都市とその支店/atmsのデータがあります

CITY        TYPE       NAME
 ----------------------------------
 agra         atm         X
 agra         branch      X1 
 delhi        atm         X2
 agra         atm         X3
 agra         atm         X4
 delhi        branch      X5
 chennai      branch      X6

期待される結果セットは

CITY     ATM   BRANCH
------------------------------------
agra       3       1 
delhi      1       1
chennai    0       1

1 つの select ステートメントでこれを実行できるかどうか。

4

3 に答える 3

5

これは、集計の条件付き合計と同じように行うことができます。

select t.city,
       sum(case when type = 'atm' then 1 else 0 end) as ATM,
       sum(case when type = 'branch' then 1 else 0 end) as branch
from t
group by t.city
于 2012-09-05T21:37:29.143 に答える
0

これは、MSAccessで実行する必要があることです。

TRANSFORM Count(Table1.Name) AS CountOfName
SELECT Table1.City
FROM Table1
GROUP BY Table1.City
PIVOT Table1.Type;

PLSQLはそれほど違いはないと思いますが、「ピボット」句も使用できます。

編集

PL/SQLでピボットを使用

select * from (
    SELECT city, type FROM t ) 
       PIVOT(count(*)  for (type) in ('atm', 'branch'));
于 2012-09-05T21:11:18.863 に答える