gpt4 book ai didi

mysql - 如何在 MySQL 中获取记录数以及最小值/最大值?

转载 作者:行者123 更新时间:2023-11-29 00:41:14 25 4
gpt4 key购买 nike

我有一个搜索表单(运行 MySQL 5.0.88)来向下钻取产品表。搜索是一个两步搜索。第一次运行获取结果数,第二次运行获取x-y 记录数据

我默认显示所有记录的最小/最大价格,现在想根据查询结果更新最小/最大值。我认为最好的方法是在初始查询中获取记录数。

目前它看起来像这样:

SELECT  COUNT( a.id ) AS recordcount
, a.nos
, a.nos_anzeige

FROM artikelstammdaten a

WHERE
a.iln != "1111111111111" AND a.iln != "2222222222222" AND a.iln != "7777777777777"
AND a.aktiv = "ja"
AND a.artikelnummer LIKE '%name%'
AND (a.modus = "OPEN"
OR a.iln IN ( 55555555555,66666666666,2222222222222 )
)

GROUP BY a.iln, a.artikelnummer, a.preis_aktuell, a.artikelbezeichnung
HAVING (( sum(a.bestand) != 0 ) OR (a.nos = "ja" AND a.anzeige = "ja" ))

这给了我所有匹配的记录。

问题:
实际上我只想要单个记录中的记录数 (~ query.recordcount ) 而不是一个接一个的单个记录(我对 COUNT 的尝试不起作用) .像这样:

  totalrecords    min-price   max-price
12345 9.99 1.204

我可以尝试在结果集中选择最小/最大值。

问题:
我该如何修改我的查询,以便我只获得总记录(并且可以尝试添加最小/最大值)?

谢谢!

** 编辑:**
我的表看起来像这样:

 CREATE TABLE dummy (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`iln` VARCHAR(13) NULL DEFAULT NULL,
`ean` VARCHAR(35) NULL DEFAULT NULL,
`artikelnummer` VARCHAR(35) NULL DEFAULT NULL,
`preis_ek` DECIMAL(12,2) NULL DEFAULT NULL,
`preis_vk` DECIMAL(12,2) NULL DEFAULT NULL,
`firma` VARCHAR(35) NULL DEFAULT NULL,
`nos` VARCHAR(4) NULL DEFAULT NULL,
`nos_anzeige` VARCHAR(4) NULL DEFAULT NULL,
`aktiv` VARCHAR(4) NULL DEFAULT NULL,
`modus` VARCHAR(4) NULL DEFAULT NULL,
`bestand` DECIMAL(10,0) NULL DEFAULT '0'
)

价格将是 preis_ekpreis_vk,我正在寻找每个价格的最小值/最大值。谢谢!

编辑:像这样运行查询会得到这样的结果集:

"id"    "nos"   "nos_anzeige"   "MIN(a.preis_ek)"
"1153837" "nein" "nein" "25,10"
"1153797" "nein" "nein" "12,40"
....

如果我没记错的话,它会选择每条记录的min,而不是跨结果集

最佳答案

你可以使用

    SELECT count(recordcount), 
Max(max_price),
Min(min_price)
FROM (SELECT Count(a.id) AS recordcount,
a.nos,
a.nos_anzeige,
Max(preis_ek) AS max_price,
Min(preis_ek) AS min_price
FROM artikelstammdaten a
WHERE a.iln != "1111111111111"
AND a.iln != "2222222222222"
AND a.iln != "7777777777777"
AND a.aktiv = "ja"
AND a.artikelnummer LIKE '%name%'
AND ( a.modus = "open"
OR a.iln IN ( 55555555555, 66666666666, 2222222222222 ) )
GROUP BY a.iln,
a.artikelnummer,
a.preis_aktuell,
a.artikelbezeichnung
HAVING ( ( Sum(a.bestand) != 0 )
OR ( a.nos = "ja"
AND a.anzeige = "ja" ) )) temp

关于mysql - 如何在 MySQL 中获取记录数以及最小值/最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12165072/

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