java求同比环比代码
时间: 2023-05-17 15:04:30 浏览: 108
以下是 Java 求同比环比的代码示例:
```java
public class Main {
public static void main(String[] args) {
int[] data = {10, 20, 30, 40, 50};
int n = data.length;
// 求同比
double tb = (data[n - 1] - data[n - 2]) / (double)data[n - 2] * 100;
System.out.println("同比增长率为:" + tb + "%");
// 求环比
double hb = (data[n - 1] - data[n - 2]) / (double)data[n - 1] * 100;
System.out.println("环比增长率为:" + hb + "%");
}
}
```
希望能够帮到你!
相关问题
java写一段求环比同比的代码
环比和同比是比较两个时间段的数据,因此需要获取两个时间段的数据并进行计算。以下是Java中求环比和同比的代码示例:
```java
import java.math.BigDecimal;
public class CompareUtil {
/**
* 环比增长率 = (本期数-上期数) / 上期数 × 100%
* @param currentNum 本期数
* @param lastNum 上期数
* @return 环比增长率
*/
public static double getMoM(BigDecimal currentNum, BigDecimal lastNum) {
BigDecimal diff = currentNum.subtract(lastNum);
return diff.divide(lastNum, 4, BigDecimal.ROUND_HALF_UP).doubleValue() * 100;
}
/**
* 同比增长率 = (本期数-去年同期数) / 去年同期数 × 100%
* @param currentNum 本期数
* @param sameTimeLastYearNum 去年同期数
* @return 同比增长率
*/
public static double getYoY(BigDecimal currentNum, BigDecimal sameTimeLastYearNum) {
BigDecimal diff = currentNum.subtract(sameTimeLastYearNum);
return diff.divide(sameTimeLastYearNum, 4, BigDecimal.ROUND_HALF_UP).doubleValue() * 100;
}
}
```
示例代码中使用BigDecimal类来处理数值计算,以避免精度问题。使用时,只需要传入相应的本期数和上期数、去年同期数即可计算出环比增长率和同比增长率。
postgresql语句实现同比环比
以下是postgresql语句实现同比环比的方法:
1. 同比
```sql
SELECT
date_part('year', current_date) AS year,
sum(sales) AS current_year_sales,
sum(sales) OVER (ORDER BY date_trunc('month', sale_date)) AS monthly_sales
FROM
sales
WHERE
date_part('year', sale_date) = date_part('year', current_date)
GROUP BY
date_part('year', current_date)
ORDER BY
date_part('year', current_date)
```
2. 环比
```sql
SELECT
date_trunc('month', sale_date) AS month,
sum(sales) AS current_month_sales,
sum(sales) OVER (ORDER BY date_trunc('month', sale_date) ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS last_month_sales
FROM
sales
WHERE
date_trunc('year', sale_date) = date_trunc('year', current_date)
GROUP BY
date_trunc('month', sale_date)
ORDER BY
date_trunc('month', sale_date)
```
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)