برای هر ردیف جدول transactions مقدار لگاریتم طبیعی ستون amount و همچنین لگاریتم پایهٔ 10 را محاسبه و به‌عنوان ستون‌های log_nat و log_base10 نمایش دهید.

0.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:24

0.0

در MySQL از تابع LOG(x) برای لگاریتم طبیعی و از LOG(b, x) برای لگاریتم با مبنای دلخواه استفاده کنید؛ مثلاً LOG(amount) و LOG(10, amount). قبل از محاسبه مطمئن شوید مقدارهای صفر یا منفی را فیلتر یا با CASE/IF به NULL تبدیل می‌کنید تا خطا جلوگیری شود (مثال: SELECT id, amount, LOG(amount) AS log_nat, LOG(10, amount) AS log_base10 FROM transactions WHERE amount > 0; یا استفاده از CASE WHEN amount>0 THEN LOG(amount) ELSE NULL END).

توسط پژوهشگر در 221 روز قبل ساعت 01:24
دسته بندی ها: MySQL MySQL for beginner
sara در 221 روز قبل ساعت 13:25

برای هر ردیف، ثبت مقدار لگاریتم طبیعی و پایه-10 مقدار amount را می‌توان با LOG(amount) و LOG(10, amount) انجام داد، ولی باید مقادیر صفر یا منفی را قبلاً فیلتر کرد یا به NULL تبدیل نمود تا با خطا مواجه نشوید. استفاده از CASE WHEN amount > 0 THEN LOG(amount) ELSE NULL END و همانطور برای LOG(10, amount) امن است. اگر می‌خواهید این محاسبات را سریع‌تر انجام دهید، می‌توانید این دو مقدار را به عنوان ستون‌های مجازی یا ستون‌های Generated Columns در MySQL تعریف کنید تا بتوانید از ایندکس‌ها برای بهبود کارایی استفاده کنید. همچنین به خاطر داشته باشید که NULLها در محاسبات جمعی می‌توانند نتایج متفاوتی بدهند، بنابراین در گزارش‌هایتان به صراحت آنها را مدیریت کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری