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


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.