কাস্টিংয়ের জন্য পুরানো বাক্য গঠন চেষ্টা করে দেখুন,
SELECT ROUND(AVG(some_column)::numeric,2)
FROM table;
PostgreSQL এর যে কোনও সংস্করণ নিয়ে কাজ করে।
কিছু পোস্টগ্রিজ এসকিউএল ফাংশনে ওভারলোডের অভাব রয়েছে , কেন (???): আমি মনে করি "এটি একটি অভাব" (!), তবে @ ক্রেইগ্রিঞ্জার, @ কেটকল এবং পোস্টগ্রিসকিউএল দল "পিজির historicতিহাসিক যুক্তি" সম্পর্কে একমত।
পিএস: রাউন্ডিং সম্পর্কে আরেকটি বিষয় যথার্থতা , @ ইয়ানকেইনির উত্তরটি দেখুন ।
Ingালাই কৌশল হিসাবে ওভারলোডিং
আপনি এর সাথে রাউন্ড ফাংশনটি ওভারলোড করতে পারেন ,
CREATE FUNCTION ROUND(float,int) RETURNS NUMERIC AS $$
SELECT ROUND($1::numeric,$2);
$$ language SQL IMMUTABLE;
এখন আপনার নির্দেশটি কার্যকর হবে, চেষ্টা করুন (ফাংশন তৈরির পরে)
SELECT round(1/3.,4); -- 0.3333 numeric
তবে এটি একটি NUMERIC টাইপ দেয় ... প্রথম কমোম-ব্যবহারের ওভারলোড সংরক্ষণের জন্য, যখন কোনও টেক্সট প্যারামিটারটি দেওয়া হয় তখন আমরা একটি ফ্ল্যাট টাইপ ফিরিয়ে দিতে পারি,
CREATE FUNCTION ROUND(float, text, int DEFAULT 0)
RETURNS FLOAT AS $$
SELECT CASE WHEN $2='dec'
THEN ROUND($1::numeric,$3)::float
-- ... WHEN $2='hex' THEN ... WHEN $2='bin' THEN... complete!
ELSE 'NaN'::float -- like an error message
END;
$$ language SQL IMMUTABLE;
চেষ্টা
SELECT round(1/3.,'dec',4); -- 0.3333 float!
SELECT round(2.8+1/3.,'dec',1); -- 3.1 float!
SELECT round(2.8+1/3.,'dec'::text); -- need to cast string? pg bug
PS: \df round
ওভারলোডিংয়ের পরে চেক করা, এমন কিছু দেখাবে,
স্কিমা | নাম | ফলাফল তথ্য প্রকার | আর্গুমেন্ট তথ্য প্রকার
------------ + + ------- + + ------------------ + + ---------- ------------------
মাইচেমা | বৃত্তাকার | ডাবল নির্ভুলতা | ডাবল স্পষ্টতা, পাঠ্য, ইনট
মাইচেমা | বৃত্তাকার | সংখ্যা | ডাবল স্পষ্টতা, int
pg_catolog | বৃত্তাকার | ডাবল নির্ভুলতা | ডাবল স্পষ্টতা
pg_catolog | বৃত্তাকার | সংখ্যা | সাংখ্যিক
pg_catolog | বৃত্তাকার | সংখ্যা | সংখ্যাসূচক, int
দ্য pg_catalog
ফাংশন ডিফল্ট বেশী দেখতে বিল্ড-ইন গণিত ফাংশন ম্যানুয়াল ।