... এই ধরণের অ্যারে_ এক্স ইউটিলিটির জন্য স্ট্যাট্যান্ডার্ড লাইব্রেরি (?) কোথায় ?
অনুসন্ধান করার চেষ্টা করুন ... কিছু দেখুন তবে কোনও মান নেই:
সবচেয়ে সহজ এবং দ্রুত array_distinct()স্নিপেট-লিব ফাংশন
এখানে সহজ এবং সম্ভবত দ্রুত বাস্তবায়ন array_unique()বা এর জন্য array_distinct():
CREATE FUNCTION array_distinct(anyarray) RETURNS anyarray AS $f$
SELECT array_agg(DISTINCT x) FROM unnest($1) t(x);
$f$ LANGUAGE SQL IMMUTABLE;
দ্রষ্টব্য: এটি অ্যারের অ্যারে ব্যতীত অন্য কোনও ডেটাটাইপের সাথে প্রত্যাশা অনুযায়ী কাজ করে,
SELECT array_distinct( array[3,3,8,2,6,6,2,3,4,1,1,6,2,2,3,99] ),
array_distinct( array['3','3','hello','hello','bye'] ),
array_distinct( array[array[3,3],array[3,3],array[3,3],array[5,6]] );
"পার্শ্ব প্রতিক্রিয়া" হ'ল উপাদানগুলির সেটগুলিতে সমস্ত অ্যারে বিস্ফোরিত করা।
পিএস: জেএসওএনবি অ্যারেগুলির সাথে দুর্দান্ত কাজ করে,
SELECT array_distinct( array['[3,3]'::JSONB, '[3,3]'::JSONB, '[5,6]'::JSONB] );
সম্পাদনা করুন: আরও জটিল তবে দরকারী, একটি "ড্রপ নালস" পরামিতি
CREATE FUNCTION array_distinct(
anyarray,
boolean DEFAULT false
) RETURNS anyarray AS $f$
SELECT array_agg(DISTINCT x)
FROM unnest($1) t(x)
WHERE CASE WHEN $2 THEN x IS NOT NULL ELSE true END;
$f$ LANGUAGE SQL IMMUTABLE;