【发布时间】:2021-03-07 23:36:51
【问题描述】:
所以,我有一个这样结构的 SQL 表:
| Product | Date | Client |
|---|
只有两个客户(客户 A 和客户 B)在特定日期购买了产品。我需要输出一个表格,指定在满足有关时间的给定条件时每个客户购买每种产品的次数,并且输出需要这个特定的布局:
| Product | Times bought by Client A | Times bought by Client B |
|---|
在输出中,每个唯一产品仅出现一次(即按产品分组)。
我开始尝试:
SELECT Product,
(SELECT COUNT(*) FROM table WHERE Client = "A" AND DATE (insert a complex condition here) AS "Times bought by Client A"
(那么B也一样)
FROM table
GROUP BY Product
但是使用该语法,输出显然将所有产品中客户端 A 的所有计数相加,然后在应用主查询中的 group by 时为每个产品返回它。所以每个单品的总数量都是一样的,对应着A买的任何一个kinf的总产品数。
所以我尝试在每个子查询中包含 Group By 语句(客户端 A 的时间,客户端 B 的时间),但随后出现错误“子查询返回超过 1 行”。
我应该如何为受 Group By Product 影响的每个客户创建一个字段??
【问题讨论】:
-
我删除了不一致的数据库标签。请仅使用您真正使用的数据库进行标记。