75278350@qq.com 发表于 2024-11-15 15:09:06

客户ID这条代码为什么不能正常运行



大神请帮忙看看,这条代码为什么不用正常运行,感谢!


select a.客户ID,a.重复个数,b.购买次数

(SELECT 客户ID,COUNT(客户ID)as重复个数
FROM
`销售订制单(云南)`
GROUP BY 客户ID
HAVING COUNT(客户ID) > 1
ORDER BY 客户ID)a,

(SELECT 客户ID,COUNT(客户ID)as 购买次数
FROM
`销售订制单(云南)`
GROUP BY 客户ID
ORDER BY 客户ID)b

where
a.客户ID=b.客户ID

FishC 发表于 2024-11-15 15:09:18

这段SQL代码不能正常运行的原因是缺少了合法的语法结构。以下是一些问题以及修改建议:

1. **缺少`FROM`关键字**:在两个子查询的末尾,你没有用逗号连接两个子查询,而是应当通过`FROM`关键字来指定它们。这导致SQL语法不完整。

2. **逗号的位置**:逗号位置不正确,应该将它放在子查询之外,而不是在子查询之间。

3. **缺少`SELECT`关键字的声明**:在主查询的`SELECT`语句中,缺少一个明确的声明,代码缺少主查询的`FROM`部分。

下面是修改后的代码:

SELECT a.客户ID, a.重复个数, b.购买次数
FROM
(SELECT 客户ID, COUNT(客户ID) AS 重复个数
FROM `销售订制单(云南)`
GROUP BY 客户ID
HAVING COUNT(客户ID) > 1) a
JOIN
(SELECT 客户ID, COUNT(客户ID) AS 购买次数
FROM `销售订制单(云南)`
GROUP BY 客户ID) b
ON a.客户ID = b.客户ID
ORDER BY a.客户ID;

修改要点:
- 用`JOIN`替换逗号连接,将两个子查询作为表进行连接。
- 在`JOIN`条件上,使用`ON`关键字来指定连接条件。
- 确保整体查询的`ORDER BY`位于最后。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 客户ID这条代码为什么不能正常运行