navicat查询去除user_id重复且出现时type=1时,求price的总数
时间: 2024-12-30 10:39:48 浏览: 5
在Navicat中,你可以使用SQL的DISTINCT关键字结合GROUP BY和COUNT函数来实现这个需求。假设你的表名为`orders`,字段有`user_id`, `type`, 和 `price`,你想找出用户_id下`type`等于1的记录,并且去除重复的user_id,然后计算价格总和,可以使用如下SQL语句:
```sql
SELECT user_id, COUNT(*) AS price_count
FROM orders
WHERE type = 1 AND user_id IN (
SELECT DISTINCT user_id FROM orders WHERE type = 1
)
GROUP BY user_id;
```
这将返回每个唯一的user_id及其对应的type为1的价格条目数量。如果你需要的是总价,那么可以直接对price求和,稍微修改一下语句:
```sql
SELECT SUM(price) AS total_price
FROM (
SELECT DISTINCT user_id, price
FROM orders
WHERE type = 1
) AS unique_prices_per_user;
```
这里先筛选出type=1且去重的(user_id, price),然后再对每个用户的price求和。
阅读全文