1

同じテーブルからデータを取得する 4 つの SQL クエリがあり、複数のクエリを含むビューを作成できるかどうか疑問に思っていました。たとえば、これらのクエリの 1 つは次のようになります。

SELECT Count(COLUMN1) FROM TABLE1 WHERE COLUMN3 > '01-Oct-12' AND COLUMN3< '01-Nov-12' 

一方、別のように見えます:

SELECT Count(COLUMN2) FROM TABLE1 WHERE COLUMN3 > '01-Oct-12' AND COLUMN3 < '01-Nov-12' 

ありがとう、

私。

4

3 に答える 3

2
CREATE VIEW viewname AS
SELECT Count(COLUMN1) as col1 FROM TABLE1 WHERE COLUMN3 > '01-Oct-12' AND COLUMN3< '01-Nov-12'
union all
SELECT Count(COLUMN2) as col1 FROM TABLE1 WHERE COLUMN3 > '01-Oct-12' AND COLUMN3 < '01-Nov-12' 
于 2012-11-01T12:18:42.913 に答える
2

同じレコードセットと同じ列にデータが必要な場合は、次を使用できますUNION ALL

SELECT Count(COLUMN1) As CNT, 'Q1' as Src
FROM TABLE1 
WHERE COLUMN3 > '01-Oct-12' 
 AND COLUMN3< '01-Nov-12'
UNION ALL
SELECT Count(COLUMN2) as Cnt, 'Q2' as Src
FROM TABLE1 
WHERE COLUMN3 > '01-Oct-12' 
  AND COLUMN3 < '01-Nov-12'

データがどのクエリから来ているかを特定するのに役立つ列を含めました。それが不要な場合は、使用を中止できます。

于 2012-11-01T12:18:46.107 に答える
1

最も単純な実装は次のとおりです。

create or replace view v23 as 
     select count(column1) as col1_count
            , count(column2) as col2_count
     from TABLE1
      WHERE COLUMN3 > '01-Oct-12' AND COLUMN3 < '01-Nov-12' 

ただし、すべてのクエリが同じ基準を使用していない場合は、スカラー サブクエリを使用できます。

create or replace view v23 as 
  select 
     (select count(column1) from TABLE1 
        WHERE COLUMN3 > '01-Oct-12' AND COLUMN3 < '01-Nov-12' ) as col1_count 
     , (select count(column2) from TABLE2 
        WHERE COLUMN3 > '01-Oct-12' AND COLUMN3 < '01-Nov-12' ) as col2_count
  from dual   
于 2012-11-01T12:28:11.767 に答える