gpt4 book ai didi

php - 如何显示所有记录分组依据

转载 作者:行者123 更新时间:2023-11-29 02:48:17 25 4
gpt4 key购买 nike

我有这张 table 。

id | promoid | fecha       | Tarifa
--------------------------------------
1 | 1 | 2016-10-01 | 74.38
2 | 1 | 2016-10-02 | 74.38
3 | 2 | 2016-10-01 | 111.57
4 | 2 | 2016-10-02 | 111.57

我想按日期之间的promoid 分组并显示所有记录。我尝试使用 group by 但我只获得了一条记录(第一条)。

这是我的 SQL

SELECT * 
FROM promociones
WHERE fecha >= '2016-10-01'
AND fecha < '2016-10-03'
GROUP
BY promoid

当 sql 运行时,它仅显示按 promoid 分组的第一行。像这样。

id | promoid | fecha       | Tarifa
--------------------------------------
1 | 1 | 2016-10-01 | 74.38

3 | 2 | 2016-10-01 | 111.57

表格很长,但我想获取promoid 生成的所有行。像这样。

id | promoid | fecha       | Tarifa
--------------------------------------
1 | 1 | 2016-10-01 | 74.38
2 | 1 | 2016-10-02 | 74.38
3 | 2 | 2016-10-01 | 111.57
4 | 2 | 2016-10-02 | 111.57

最佳答案

“通常”...

按查询分组 “allways” 意味着两件事:

  • 结果集的记录少于没有 group by 的等效对应查询
  • Select 的表达式列表(输出中显示的内容)包括任何分组函数(sum()count()max()) 与 group by 生成的每个组相关且有意义。

特别针对您的问题:您期望“所有”记录(相同数量)并且您没有或期望或提议任何相关的分组功能。正如评论中所说,似乎可以通过 select * from ... 解决,或者您需要解释或更好地思考您想要什么。

所以给出:
按 expr1、expr2 选择 expr1、expr2、expr3、expr4

请将group by想象成一个过程,它接收一些输入数据并按照以下规则给出一些输出数据:

  • 对于输入数据中存在的 expr1、expr2 的每种不同组合,输出将只有一条记录。 (这就是您的示例显示两条记录的原因)
  • expr3、expr4必须是(或包含)分组函数,输出“那组”相关数据。
    关于 MySql 的一个词:在 MySql 语法上,如果你省略了 expr3 和 expr4 上的任何分组函数,你可以假设它使用 whatever() 作为分组函数,这样: whatever( expr3), whatever(expr4) 并且它从“那个组”中输出任何值(这就是为什么你可以在你的例子中使用 * 并且你有显示的输出)

关于php - 如何显示所有记录分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39175659/

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