আমি আমার patients
টেবিলের refinst
কলামের একটি মান আছে এমন সারিগুলির% সরবরাহ করতে নীচের ক্যোয়ারীটি চালানোর চেষ্টা করছি । আমি 0 এর ফলাফল পেতে থাকি।
select (count (refinst) / (select count(*) from patients) * 100) as "Formula"
from patients;
টেবিলটির 15556 সারি রয়েছে এবং select count(refinst) from patients
আমাকে বলে যে refinst
কলামটিতে তাদের 1446 মান রয়েছে have আমি ক্যোয়ারী থেকে যে প্রতিক্রিয়া পেতে চাই তা হবে 30.62 ( 1446/15556*100=30.62XXXXX
, যা দুটি দশমিকের মতো হবে)।
আমি নিশ্চিত যে এটির গণনা ফলাফলের ডেটা ধরণের (ইন্টিজারগুলি আমি ধরে নিচ্ছি) এর সাথে কিছু করার আছে pretty আমি যদি একটি পূর্ণসংখ্যা দ্বারা একটি পূর্ণসংখ্যা ভাগ করে এবং ফলাফল 0 এর কম হয় তবে এটি 0 টি সংশোধন করা হয়? যদি এটি হয় তবে কেউ আমাকে কীভাবে 2 দশমিক স্থানের সাথে একটি সংখ্যা হিসাবে গণনাগুলির ফলাফলগুলি ফেলে দিতে পারেন যাতে ফলাফলটিও 2 দশমিক স্থানে পরিণত হয়?
আমি নিশ্চিত যে একাধিক কাউন্ট স্টেটমেন্টের চেয়ে এই কোডটি লেখার আরও ভাল উপায় আছে। বিশেষত এই কোয়েরিটি লিখতে আমি আরও প্রসেসর-দক্ষ উপায়ের সন্ধান করছি।