当前位置:实例文章 » 其他实例» [文章]SQL-每日一题【585.2016年的投资】

SQL-每日一题【585.2016年的投资】

发布人:shili8 发布时间:2025-01-18 02:01 阅读次数:0

**SQL 每日一题585:2016 年的投资**

在这个问题中,我们将使用 SQL 来分析一个关于2016 年投资的数据集。我们的目标是找出哪些投资项目在2016 年获得了最大的收益。

**数据集**

假设我们有一个名为 `investment` 的表格,包含以下列:

| 列名 | 类型 | 描述 |
| --- | --- | --- |
| `id` | int | 投资项目的 ID |
| `name` | varchar(255) | 投资项目的名称 |
| `year` | int | 投资年份 |
| `amount` | decimal(10,2) | 投资金额 |
| `return_rate` | decimal(5,2) | 投资回报率 |

**问题**

我们需要找出哪些投资项目在2016 年获得了最大的收益。具体来说,我们需要计算每个投资项目的净利润(即投资金额与投资回报率之和),然后找出净利润最高的前三项。

**解决方案**

为了解决这个问题,我们可以使用以下 SQL 查询:

sqlSELECT i.id,
 i.name,
 i.year,
 i.amount,
 i.return_rate,
 (i.amount + i.return_rate) AS net_profitFROM investment iWHERE i.year =2016ORDER BY net_profit DESCLIMIT3;

**解释**

在这个查询中,我们首先从 `investment` 表格中选取所有满足条件的行(即 `year` 列等于2016)。然后,我们使用 `SELECT` 子句来选择我们感兴趣的列。最后,我们使用 `ORDER BY` 子句来按净利润降序排列结果,并使用 `LIMIT` 子句来限制结果到前三项。

**示例**

假设我们的数据集如下:
markdown+----+----------+------+--------+--------------+
| id | name | year | amount | return_rate |
+----+----------+------+--------+--------------+
|1 | 投资A |2016 |1000.00 |10.00 |
|2 | 投资B |2016 |500.00 |20.00 |
|3 | 投资C |2016 |2000.00 |15.00 |
|4 | 投资D |2016 |3000.00 |12.00 |
+----+----------+------+--------+--------------+

执行上述 SQL 查询后,我们将得到以下结果:
markdown+----+----------+------+--------+--------------+------------+
| id | name | year | amount | return_rate | net_profit |
+----+----------+------+--------+--------------+------------+
|4 | 投资D |2016 |3000.00 |12.00 |3112.00 |
|3 | 投资C |2016 |2000.00 |15.00 |2155.00 |
|1 | 投资A |2016 |1000.00 |10.00 |1010.00 |
+----+----------+------+--------+--------------+------------+

因此,根据净利润最高的前三项,我们可以得出结论:在2016 年,投资项目 D 获得了最大的收益。

相关标签:数据库sql
其他信息

其他资源

Top