با استفاده از تابع BIT_COUNT در MySQL، برای هر رکورد جدول numbers تعداد بیتهای 1 در ستون value را نمایش دهید و نتایج را بر اساس تعداد بیتها به صورت نزولی مرتب کنید.
5.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:16 0.0
تابع BIT_COUNT(n) در MySQL تعداد بیتهای برابر با 1 در نمایش دودویی عدد n را برمیگرداند. برای حل سوال از یک پرسوجوی ساده SELECT استفاده کنید: ستونهای id و value را همراه با BIT_COUNT(value) بهصورت یک Alias نشان دهید و با ORDER BY روی آن Alias مرتبسازی نزولی انجام دهید. اگر ستون value مقادیر منفی دارد، برای جلوگیری از نمایشهای نامطلوب میتوانید مقدار را با CAST(... AS UNSIGNED) تبدیل کنید. این تمرین مربوط به حوزه Functions & Expressions و Data Querying در MySQL است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته مهم این است که تابع BIT_COUNT تعداد بیتهای برابر با 1 در نمایش دودویی مقدار را برمیگرداند و اغلب برای مقادیر منفی باید مقدار را به unsigned تبدیل کرد. برای جلوگیری از رفتار نامطلوب با مقادیر منفی، از CAST(value AS UNSIGNED) استفاده کنید تا نمایش دودویی همواره مثبت باشد. در نتیجه میتوانید یک کوئری ساده مانند SELECT id, value, BIT_COUNT(CAST(value AS UNSIGNED)) AS bits FROM numbers ORDER BY bits DESC بنویسید. همچنین توجه کنید BIT_COUNT فقط با انواع عددی معتبر کار میکند و در حجمهای بزرگ دادهها باید نوع داده مناسب را لحاظ کنید.
گزارش