gpt4 book ai didi

MySQL GROUP BY 和 COUNT

转载 作者:行者123 更新时间:2023-11-29 03:09:27 25 4
gpt4 key购买 nike

在对 mysql 表中的一些元素进行分组后,我有一个关于计数的小问题,我有一个订单表 .. 其中每个订单都有几行按代码(命名为 codcomanda)分组......我必须执行一个查询来计算每个客户的订单数量并仅列出名称和订单数量。

这就是我想到的(这可能很愚蠢……我不是专业程序员)

SELECT a.nume, a.tel, (
SELECT COUNT(*) AS `count`
FROM (
SELECT id AS `lwtemp`
FROM lw_comenzi_confirmate AS yt
WHERE status=1 AND yt.tel LIKE **a.tel**
GROUP BY yt.codcomanda
) AS b
) AS numar_comenzi
FROM lw_comenzi_confirmate AS a
WHERE status=1
GROUP BY tel;

编号 = 名称
tel = PHONE(这是客户的独特标识符,因为没有登录系统)

上述查询的问题是我不知道如何将 a.tel 与第一个选择所在的那个相匹配。如果我用数据库中的数字替换它,它就可以工作....

任何人都可以帮助我如何引用该 var 吗?或者关于如何完成这项工作的另一种解决方案?

如果需要更多信息,我会尽快提供。

最佳答案

如果我对您的架构的理解有误,请纠正我:

  • lw_comenzi_confirmate包含客户的numtel
  • lw_comenzi_confirmate 包含订单详情(同表);
  • 一个订单在lw_comenzi_confirmate表中可以有多个条目,订单通过codcomanda字段区分。

首先,我强烈推荐阅读关于 Normalisation 的内容并修复您的数据库设计。

以下应该为您完成工作:

SELECT nume, tel, count(DISTINCT codcomanda) AS cnt
FROM lw_comenzi_confirmate
WHERE status = 1
GROUP BY nume, tel
ORDER BY nume, tel;

您可以在 SQL Fiddle 上测试此查询.

关于MySQL GROUP BY 和 COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10599789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com