gpt4 book ai didi

mysql - 订购 Group BY

转载 作者:行者123 更新时间:2023-11-29 04:20:39 27 4
gpt4 key购买 nike

关于这个主题有很多问题,仍然无法找到解决这个问题的方法。

我正在做的查询是:

SELECT `b`.`ads_id`     AS `ads_id`,
`b`.`bod_bedrag` AS `bod_bedrag`,
`a`. `ads_naam` AS `ads_naam`,
`a`.`ads_url` AS `ads_url`,
`a`.`ads_prijs` AS `ads_price`,
`i`.`url` AS `img_url`,
`c`.`url` AS `cat_url`
FROM `ads_market_bids` AS `b`
INNER JOIN `ads_market` AS `a`
ON `b`.`ads_id` = `a`.`id`
INNER JOIN `ads_images` AS `i`
ON `b`.`ads_id` = `i`.`ads_id`
INNER JOIN `ads_categories` AS `c`
ON `a`.`cat_id` = `c`.`id`
WHERE `i`.`img_order` = '0'
AND `b`.`u_id` = '285'
GROUP BY `b`.`ads_id`
HAVING MAX(b.bod_bedrag)
ORDER BY `b`.`bod_bedrag` ASC

但是,我一直看到的问题是我需要在 GROUP BY 发生之前对 b.bod_bedrag 进行排序。不知道怎么解释。

我现在得到的 bod_bedrag 是表格中最低的出价。我需要最高的。

像所有方法一样尝试过,甚至不使用 DISTINCT 进行分组。这也没有用。尝试按最大顺序订购,我知道或可以在互联网上找到的一切。

图1是没有group by的情况。 Order By 效果很好 (ofc)。 No Group By 图 2 是分组依据。如您所见,最低出价被视为 bod_bedrag。我需要最高的。 With Group By

最佳答案

根据你想要的输出来判断:

  SELECT amb.ads_id,
MAX(amb.bod_bedrag) max_bod_bedrag,
am.ads_naam,
am.ads_url,
am.ads_prijs ads_price,
ai.url img_url,
ac.url cat_url
FROM ads_market_bids amb
JOIN ads_images ai
ON ai.ads_id = amb.ads_id
AND ai.img_order = 0
JOIN ads_market am
ON am.id = amb.ads_id
JOIN ads_categories ac
ON ac.id = am.cat_id
WHERE amb.u_id = 285
GROUP BY amb.ads_id,
am.ads_naam,
am.ads_url,
am.ads_prijs,
ai.url,
ac.url
ORDER BY max_bod_bedrag ASC

我还删除了所有不必要的反引号和同名列的别名。您的 HAVING 没有做任何事情,因为所有组都“拥有”一个 MAX(amb.bod_rag)

关于mysql - 订购 Group BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25308181/

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