某表有字段:交易日期 产品代码 买入卖出标识 单价 数量 总价 ,计算每一日的加权成本用sql
时间: 2024-03-12 17:46:04 浏览: 22
好的,您可以使用以下 SQL 语句来计算每一日的加权成本:
```
SELECT 交易日期,
产品代码,
SUM(CASE WHEN 买入卖出标识 = '买入' THEN 总价 ELSE -总价 END) OVER(PARTITION BY 产品代码 ORDER BY 交易日期) / SUM(CASE WHEN 买入卖出标识 = '买入' THEN 数量 ELSE -数量 END) OVER(PARTITION BY 产品代码 ORDER BY 交易日期) AS 加权成本
FROM 表名;
```
其中,`表名`为您所需查询的表名。以上 SQL 语句中使用了 `SUM() OVER()` 函数来计算累计买入金额和卖出时的加权成本乘以卖出数量的总和,从而求出当前日期及之前的累计买入金额减去当前日期及之前的卖出时的加权成本乘以卖出数量的结果。然后再除以买入总数减去卖出总数,即可得到每一日的加权成本。
相关问题
sql字段有:开始时间,结束时间,交易水量kwh,如何计算每个小时的交易水量,保证数据不流失,给出sql代码
可以使用以下SQL代码来计算每个小时的交易水量:
```
SELECT
DATE_TRUNC('hour', 开始时间) AS hour,
SUM(交易水量kwh) AS 每小时交易水量
FROM
交易表
WHERE
开始时间 IS NOT NULL AND 结束时间 IS NOT NULL
GROUP BY
hour
ORDER BY
hour ASC;
```
其中,DATE_TRUNC('hour', 开始时间)函数将开始时间按小时取整,以便计算每个小时的交易水量;SUM(交易水量kwh)函数将每个小时的交易水量求和;GROUP BY语句按小时分组,以便进行聚合计算;ORDER BY语句按小时排序。为了保证数据不流失,需要使用可靠的数据库,并进行定期备份和恢复。此外,在数据传输期间,可以使用SSL/TLS等加密协议来保护数据的安全。
sql计算一张表里面今天数据的数量字段和昨数据的数量字段算出百分比
假设你有一个名为table_name的表,其中包括一个名为quantity的字段。你可以使用以下SQL查询计算今天和昨天这两条数据中quantity字段的百分比:
```
SELECT
(SELECT SUM(quantity) FROM table_name WHERE DATE(created_at) = CURDATE()) AS today_quantity,
(SELECT SUM(quantity) FROM table_name WHERE DATE(created_at) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)) AS yesterday_quantity,
((SELECT SUM(quantity) FROM table_name WHERE DATE(created_at) = CURDATE()) / (SELECT SUM(quantity) FROM table_name WHERE DATE(created_at) = DATE_SUB(CURDATE(), INTERVAL 1 DAY))) * 100 AS percentage
```
请将上面的查询中的table_name和quantity替换为你实际使用的表和字段名。这个查询将返回今天和昨天这两条数据中quantity字段的数量以及计算出的百分比。