পোস্টগ্রিস / এসকিউএল-এ ন্যূনতম / সর্বোচ্চ দুটি পূর্ণসংখ্যা কীভাবে পাবেন?


147

পোস্টগ্রিস / এসকিউএল-তে আমি দুটি পূর্ণসংখ্যার সর্বাধিক (বা সর্বনিম্ন) কীভাবে খুঁজে পাই? একটি পূর্ণসংখ্যার কলাম মান নয়।

আমি একটি উদাহরণ দৃশ্যে দেব:

আমি একটি কলাম (সমস্ত সারি) থেকে পূর্ণসংখ্যা বিয়োগ করতে চাই, তবে ফলাফলটি শূন্যের চেয়ে কম হওয়া উচিত নয়। সুতরাং, শুরু করার জন্য, আমার কাছে রয়েছে:

UPDATE my_table
SET my_column = my_column - 10;

তবে এটি কিছু মানকে নেতিবাচক করে তুলতে পারে। আমি যা চাই (সিউডো কোডে) তা হ'ল:

UPDATE my_table
SET my_column = MAXIMUM(my_column - 10, 0);

Relatedly আপনি একটি ইউনিয়ন ডেটা সেট তৈরি এবং তারপর অন্তত সর্বোচ্চ যে SQL সার্ভার ইন করতে পারি stackoverflow.com/questions/124417/...
— Kzqai

উত্তর:



17

আপনি ইনলাইন বর্গ চাই case:

set my_column = case when my_column - 10 > 0 then my_column - 10 else 0 end

max() একটি সামগ্রিক ফাংশন এবং ফলাফল সেট সারি সর্বাধিক পায়।

সম্পাদনা: উফ, পোস্টগ্রিস সম্পর্কে greatestএবং তার সম্পর্কে জানা ছিল না least। পরিবর্তে এটি ব্যবহার করুন।


10
আপনি যদি স্ট্যান্ডার্ড এসকিউএলে সীমাবদ্ধ থাকেন তবে এই সংস্করণটি কার্যকর is
— ডন কার্কবি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.