count と distinct

  全ての行数と列単位の行数



社員テーブルにおいて、手当の種類は NULL,1000,2000,3000 で、
1000 --> 一人
2000 --> 三人
3000 --> 一人
であるとします

全ての行数
  
select count(*) as 社員数 from 社員テーブル
  

NULLを除く列の行数
  
select count(手当) as 手当対象人数 from 社員テーブル
  

実行結果
手当対象人数
5

NULLを除く列のうち重複しない行数 ( EXCEL、MDB を除く )
  
select count(distinct 手当) as 手当の種類の数 from 社員テーブル
  

NULLを除く列のうち重複しない行数 ( EXCEL、MDB )
  
select count(手当) as 手当の種類の数
from
(
   select distinct 手当 from 社員テーブル
) as INVIEW
  

実行結果
手当の種類の数
3

  
select 所属
	,count(*) as 所属別社員数 
 from 社員テーブル 
 group by 所属
 order by 所属;

select 所属
	,count(手当) as 所属別手当対象者 
 from 社員テーブル 
 group by 所属
 order by 所属;
  

●所属●所属別社員数
000112
000223
000315
●所属●所属別手当対象者
00011
00023
00031

以下は、SQLServer と PostgreSQL と Oracle で指定可能なテーブルに関するデータを
一度に取得する方法です
  
select
(select count(*) from 社員テーブル) as 社員数 
,
(select count(手当) from 社員テーブル) as 手当対象人数
,
(select sum(給与) from 社員テーブル) as 基本給合計
,
(select sum(手当) from 社員テーブル) as 手当合計
--from dual (Oracle では from dual が必要です)
  

社員数手当対象人数基本給合計手当合計
505875000010000











  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ