MSIPO技术圈 首页 IT技术 查看内容

【数据分析面试】1. 计算年度收入百分比(SQL)

2024-03-28

在这里插入图片描述

题目

你需要为公司的营收来源生成一份年度报告。计算截止目前为止,在表格中记录的第一年和最后一年所创造的总收入百分比。将百分比四舍五入到两位小数。

示例:
输入:
annual_payments

列名类型
amountINTEGER
created_atDATETIME
statusVARCHAR
user_idINTEGER
amount_refundedINTEGER
productVARCHAR
idINTEGER

输出:

列名类型
percent_firstFLOAT
percent_lastFLOAT

答案

解题思路: 首先找到第一年和最后一年的记录。然后,我们需要计算这些年份的总收入。最后,我们将总收入除以截止目前为止的总收入,并将结果乘以100,得到百分比。

易错点: 题目中的amount_refunded字段是指退款金额,在计算总收入时需要将退款金额扣去

答案代码:

SELECT
    ROUND(
    (SELECT SUM(amount-amount_refunded) FROM annual_payments
      WHERE YEAR(created_at) = (SELECT MIN(YEAR(created_at)) FROM annual_payments)
      )/SUM(amount-amount_refunded) * 100.0 , 2) AS percent_first,
    ROUND(
      (SELECT SUM(amount-amount_refunded) FROM annual_payments
      WHERE YEAR(created_at) = (SELECT MAX(YEAR(created_at)) FROM annual_payments)
      )
      /SUM(amount-amount_refunded) * 100.0
      , 2) AS percent_last
FROM
    annual_payments;

相关阅读

热门文章

    手机版|MSIPO技术圈 皖ICP备19022944号-2

    Copyright © 2024, msipo.com

    返回顶部