LoginSignup
1
2

More than 1 year has passed since last update.

【PostgreSQL】割り算のいろいろな算出方法

Posted at

SQL

※A5Mk2 での使用を想定しての記述です

割り算計算

--*SetParameter setCount0 600 Integer
--*SetParameter setCount1 601 Integer
--*SetParameter setCount2 602 Integer
--*SetParameter setCount3 603 Integer
--*SetParameter setCount4 604 Integer
--*SetParameter setCount5 605 Integer
--*SetParameter setCount6 606 Integer
--*SetParameter setCount7 607 Integer
--*SetParameter setCount8 608 Integer
--*SetParameter setCount9 609 Integer

select  
    @setCount0                                 as 
   ,cast(@setCount0 as numeric) / 6            as numeric
   ,cast(@setCount0 as integer) / 6            as integer
   ,cast(@setCount0 as float) / 6              as float
   ,@setCount0 / 6                             as 割り算

   ,CEILING(cast(@setCount0 as numeric) / 6)   as N切り上げ
   ,FLOOR(cast(@setCount0 as numeric) / 6)     as N切り捨て
   ,ROUND((cast(@setCount0 as numeric) / 6),0) as N四捨五入

   ,CEILING(cast(@setCount0 as integer) / 6)   as I切り上げ
   ,FLOOR(cast(@setCount0 as integer) / 6)     as I切り捨て
   ,ROUND((cast(@setCount0 as integer) / 6),0) as I四捨五入

   ,CEILING(cast(@setCount0 as float) / 6)     as F切り上げ
   ,FLOOR(cast(@setCount0 as float) / 6)       as F切り捨て
--   ,ROUND((cast(@setCount0 as float) / 6),0) as F四捨五入
union all
select  
    @setCount1                                 as 
   ,cast(@setCount1 as numeric) / 6            as numeric
   ,cast(@setCount1 as integer) / 6            as integer
   ,cast(@setCount1 as float) / 6              as float
   ,@setCount1 / 6                             as 割り算

   ,CEILING(cast(@setCount1 as numeric) / 6)   as N切り上げ
   ,FLOOR(cast(@setCount1 as numeric) / 6)     as N切り捨て
   ,ROUND((cast(@setCount1 as numeric) / 6),0) as N四捨五入

   ,CEILING(cast(@setCount1 as integer) / 6)   as I切り上げ
   ,FLOOR(cast(@setCount1 as integer) / 6)     as I切り捨て
   ,ROUND((cast(@setCount1 as integer) / 6),0) as I四捨五入

   ,CEILING(cast(@setCount1 as float) / 6)     as F切り上げ
   ,FLOOR(cast(@setCount1 as float) / 6)       as F切り捨て
--   ,ROUND((cast(@setCount1 as float) / 6),0) as F四捨五入
union all
select  
    @setCount2                                 as 
   ,cast(@setCount2 as numeric) / 6            as numeric
   ,cast(@setCount2 as integer) / 6            as integer
   ,cast(@setCount2 as float) / 6              as float
   ,@setCount2 / 6                             as 割り算

   ,CEILING(cast(@setCount2 as numeric) / 6)   as N切り上げ
   ,FLOOR(cast(@setCount2 as numeric) / 6)     as N切り捨て
   ,ROUND((cast(@setCount2 as numeric) / 6),0) as N四捨五入

   ,CEILING(cast(@setCount2 as integer) / 6)   as I切り上げ
   ,FLOOR(cast(@setCount2 as integer) / 6)     as I切り捨て
   ,ROUND((cast(@setCount2 as integer) / 6),0) as I四捨五入

   ,CEILING(cast(@setCount2 as float) / 6)     as F切り上げ
   ,FLOOR(cast(@setCount2 as float) / 6)       as F切り捨て
--   ,ROUND((cast(@setCount2 as float) / 6),0) as F四捨五入

union all
select  
    @setCount3                                 as 
   ,cast(@setCount3 as numeric) / 6            as numeric
   ,cast(@setCount3 as integer) / 6            as integer
   ,cast(@setCount3 as float) / 6              as float
   ,@setCount3 / 6                             as 割り算

   ,CEILING(cast(@setCount3 as numeric) / 6)   as N切り上げ
   ,FLOOR(cast(@setCount3 as numeric) / 6)     as N切り捨て
   ,ROUND((cast(@setCount3 as numeric) / 6),0) as N四捨五入

   ,CEILING(cast(@setCount3 as integer) / 6)   as I切り上げ
   ,FLOOR(cast(@setCount3 as integer) / 6)     as I切り捨て
   ,ROUND((cast(@setCount3 as integer) / 6),0) as I四捨五入

   ,CEILING(cast(@setCount3 as float) / 6)     as F切り上げ
   ,FLOOR(cast(@setCount3 as float) / 6)       as F切り捨て
--   ,ROUND((cast(@setCount3 as float) / 6),0) as F四捨五入

union all
select  
    @setCount4                                 as 
   ,cast(@setCount4 as numeric) / 6            as numeric
   ,cast(@setCount4 as integer) / 6            as integer
   ,cast(@setCount4 as float) / 6              as float
   ,@setCount4 / 6                             as 割り算

   ,CEILING(cast(@setCount4 as numeric) / 6)   as N切り上げ
   ,FLOOR(cast(@setCount4 as numeric) / 6)     as N切り捨て
   ,ROUND((cast(@setCount4 as numeric) / 6),0) as N四捨五入

   ,CEILING(cast(@setCount4 as integer) / 6)   as I切り上げ
   ,FLOOR(cast(@setCount4 as integer) / 6)     as I切り捨て
   ,ROUND((cast(@setCount4 as integer) / 6),0) as I四捨五入

   ,CEILING(cast(@setCount4 as float) / 6)     as F切り上げ
   ,FLOOR(cast(@setCount4 as float) / 6)       as F切り捨て
--   ,ROUND((cast(@setCount4 as float) / 6),0) as F四捨五入

union all
select  
    @setCount5                                 as 
   ,cast(@setCount5 as numeric) / 6            as numeric
   ,cast(@setCount5 as integer) / 6            as integer
   ,cast(@setCount5 as float) / 6              as float
   ,@setCount5 / 6                             as 割り算

   ,CEILING(cast(@setCount5 as numeric) / 6)   as N切り上げ
   ,FLOOR(cast(@setCount5 as numeric) / 6)     as N切り捨て
   ,ROUND((cast(@setCount5 as numeric) / 6),0) as N四捨五入

   ,CEILING(cast(@setCount5 as integer) / 6)   as I切り上げ
   ,FLOOR(cast(@setCount5 as integer) / 6)     as I切り捨て
   ,ROUND((cast(@setCount5 as integer) / 6),0) as I四捨五入

   ,CEILING(cast(@setCount5 as float) / 6)     as F切り上げ
   ,FLOOR(cast(@setCount5 as float) / 6)       as F切り捨て
--   ,ROUND((cast(@setCount5 as float) / 6),0) as F四捨五入

union all
select  
    @setCount6                                 as 
   ,cast(@setCount6 as numeric) / 6            as numeric
   ,cast(@setCount6 as integer) / 6            as integer
   ,cast(@setCount6 as float) / 6              as float
   ,@setCount6 / 6                             as 割り算

   ,CEILING(cast(@setCount6 as numeric) / 6)   as I切り上げ
   ,FLOOR(cast(@setCount6 as numeric) / 6)     as I切り捨て
   ,ROUND((cast(@setCount6 as numeric) / 6),0) as I四捨五入

   ,CEILING(cast(@setCount6 as integer) / 6)   as N切り上げ
   ,FLOOR(cast(@setCount6 as integer) / 6)     as N切り捨て
   ,ROUND((cast(@setCount6 as integer) / 6),0) as N四捨五入

   ,CEILING(cast(@setCount6 as float) / 6)   as F切り上げ
   ,FLOOR(cast(@setCount6 as float) / 6)     as F切り捨て
--   ,ROUND((cast(@setCount6 as float) / 6),0) as F四捨五入
union all
select  
    @setCount7                                 as 
   ,cast(@setCount7 as numeric) / 6            as numeric
   ,cast(@setCount7 as integer) / 6            as integer
   ,cast(@setCount7 as float) / 6              as float
   ,@setCount7 / 6                             as 割り算

   ,CEILING(cast(@setCount7 as numeric) / 6)   as N切り上げ
   ,FLOOR(cast(@setCount7 as numeric) / 6)     as N切り捨て
   ,ROUND((cast(@setCount7 as numeric) / 6),0) as N四捨五入

   ,CEILING(cast(@setCount7 as integer) / 6)   as I切り上げ
   ,FLOOR(cast(@setCount7 as integer) / 6)     as I切り捨て
   ,ROUND((cast(@setCount7 as integer) / 6),0) as I四捨五入

   ,CEILING(cast(@setCount7 as float) / 6)   as F切り上げ
   ,FLOOR(cast(@setCount7 as float) / 6)     as F切り捨て
--   ,ROUND((cast(@setCount7 as float) / 6),0) as F四捨五入
union all
select  
    @setCount8                                 as 
   ,cast(@setCount8 as numeric) / 6            as numeric
   ,cast(@setCount8 as integer) / 6            as integer
   ,cast(@setCount8 as float) / 6              as float
   ,@setCount8 / 6                             as 割り算

   ,CEILING(cast(@setCount8 as numeric) / 6)   as I切り上げ
   ,FLOOR(cast(@setCount8 as numeric) / 6)     as I切り捨て
   ,ROUND((cast(@setCount8 as numeric) / 6),0) as I四捨五入

   ,CEILING(cast(@setCount8 as integer) / 6)   as N切り上げ
   ,FLOOR(cast(@setCount8 as integer) / 6)     as N切り捨て
   ,ROUND((cast(@setCount8 as integer) / 6),0) as N四捨五入

   ,CEILING(cast(@setCount8 as float) / 6)   as F切り上げ
   ,FLOOR(cast(@setCount8 as float) / 6)     as F切り捨て
--   ,ROUND((cast(@setCount8 as float) / 6),0) as F四捨五入
union all
select  
    @setCount9                                 as 
   ,cast(@setCount9 as numeric) / 6            as numeric
   ,cast(@setCount9 as integer) / 6            as integer
   ,cast(@setCount9 as float) / 6              as float
   ,@setCount9 / 6                             as 割り算

   ,CEILING(cast(@setCount9 as numeric) / 6)   as N切り上げ
   ,FLOOR(cast(@setCount9 as numeric) / 6)     as N切り捨て
   ,ROUND((cast(@setCount9 as numeric) / 6),0) as N四捨五入

   ,CEILING(cast(@setCount9 as integer) / 6)   as I切り上げ
   ,FLOOR(cast(@setCount9 as integer) / 6)     as I切り捨て
   ,ROUND((cast(@setCount9 as integer) / 6),0) as I四捨五入

   ,CEILING(cast(@setCount9 as float) / 6)     as F切り上げ
   ,FLOOR(cast(@setCount9 as float) / 6)       as F切り捨て
--   ,ROUND((cast(@setCount9 as float) / 6),0) as F四捨五入
;


出力値

numeric integer float 割り算 N切り上げ N切り捨て N四捨五入 I切り上げ I切り捨て I四捨五入 F切り上げ F切り捨て
600 100 100 100 100 100 100 100 100 100 100 100 100
601 100.1666667 100 100.1666667 100 101 100 100 100 100 100 101 100
602 100.3333333 100 100.3333333 100 101 100 100 100 100 100 101 100
603 100.5 100 100.5 100 101 100 101 100 100 100 101 100
604 100.6666667 100 100.6666667 100 101 100 101 100 100 100 101 100
605 100.8333333 100 100.8333333 100 101 100 101 100 100 100 101 100
606 101 101 101 101 101 101 101 101 101 101 101 101
607 101.1666667 101 101.1666667 101 102 101 101 101 101 101 102 101
608 101.3333333 101 101.3333333 101 102 101 101 101 101 101 102 101
609 101.5 101 101.5 101 102 101 102 101 101 101 102 101
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2