با استفاده از تابع BIT_COUNT در MySQL، یک پرسوجو بنویسید که از جدول numbers ستون value را انتخاب کند و تعداد بیتهای '1' هر مقدار را بهعنوان ones_count نمایش دهد و نتایج را بر اساس ones_count نزولی مرتب کند.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:20 0.0
تابع BIT_COUNT(n) تعداد بیتهای '1' در نمایش دودویی مقدار n را بازمیگرداند. برای حل سوال کافی است از SELECT همراه با BIT_COUNT(value) استفاده کنید، مثال: SELECT id, value, BIT_COUNT(value) AS ones_count FROM numbers ORDER BY ones_count DESC; اگر ممکن است مقادیر منفی داشته باشید برای نتیجه قابل پیشبینی آنها را به قالب بدون علامت تبدیل کنید مثل BIT_COUNT(CAST(value AS UNSIGNED)) یا از WHERE/ORDER BY برای فیلتر و چیدن خروجی بهره ببرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پرسوجوی شما میتوانید از BIT_COUNT(value) استفاده کنید و نتیجه را با نام مستعار ones_count نمایش دهید. اگر مقادیر منفی دارید، مقدار بیتها میتواند غیرمنتظره باشد، بنابراین بهتر است مقدار value را به unsigned تبدیل کنید، مثلاً BIT_COUNT(CAST(value AS UNSIGNED)). سپس خروجی را با ORDER BY ones_count DESC نزولی کنید. اگر نیاز به فیلتر خاصی دارید، میتوانید از WHERE value >= 0 یا شروط دیگر بهره ببرید.
گزارش