[英]How to get number of records along with min/max values in MySQL?
我有一個搜索表單(運行MySQL 5.0.88
)以向下鑽取產品表。 搜索是兩步搜索。 第一次運行獲取number of results
,第二次運行獲取data of records xy
的data of records xy
。
我默認顯示所有記錄的最低/最高價格,現在要根據查詢結果更新最低/最高價格。 我當時想最好的方法是在初始查詢中,它獲取記錄數。
當前看起來像這樣:
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_ek
和preis_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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.