Guten Tag
Derzeit bastel ich gerade an ner kleinen Weboberfläche für ein Marktsystem und hab Probleme mit einem Teil der MySQL Query
Derzeit nutze ich MariaDB "Ver 15.1 Distrib 10.0.20-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2"
Die SQL Abfrage:
SELECT
@item:=m.item,
m.item,
m.value,
m.base,
n.name,
m.timestamp,
(SELECT AVG(value) FROM market WHERE item=m.item) as average,
(SELECT AVG(base) FROM market WHERE item=m.item) as baverage,
(SELECT value FROM market WHERE item=m.item ORDER BY value DESC LIMIT 1) as highest,
(SELECT value FROM market WHERE item=m.item ORDER BY value ASC LIMIT 1) as lowest,
(
SELECT avg(m1.value)
FROM (
SELECT value
FROM market
WHERE item=@item
ORDER BY timestamp DESC
LIMIT 10
) m1
) trend
FROM names n
LEFT JOIN market m
ON n.item = m.item
JOIN
(SELECT MAX(id) as mid, id FROM market GROUP BY item) t
ON m.id = t.mid
Alles anzeigen
Das Ergebnis JSON encoded:
[{"@item:=m.item":"algenp","item":"algenp","value":4656,"base":4284,"name":"Biodiesel","timestamp":1457522101,"average":4514.6894,"baverage":4284,"highest":4656,"lowest":4340,"trend":4654},
{"@item:=m.item":"aquarium","item":"aquarium","value":39251,"base":38866,"name":"Aquarium","timestamp":1457522101,"average":39244.447,"baverage":38866,"highest":39478,"lowest":38814,"trend":4654},
{"@item:=m.item":"baumwollep","item":"baumwollep","value":1595,"base":1474,"name":"Baumwolle","timestamp":1457522101,"average":1550.8662,"baverage":1474,"highest":1595,"lowest":1473,"trend":4654},
{"@item:=m.item":"bgold","item":"bgold","value":10667,"base":9590,"name":"Blattgold","timestamp":1457522101,"average":10297.7576,"baverage":9590,"highest":10667,"lowest":9715,"trend":4654},
{"@item:=m.item":"bronze","item":"bronze","value":8829,"base":8610,"name":"Bronzebarren","timestamp":1457522101,"average":8825.2222,"baverage":8610,"highest":8916,"lowest":8666,"trend":4654},
{"@item:=m.item":"cement","item":"cement","value":2688,"base":2464,"name":"Zement","timestamp":1457522101,"average":2629.4697,"baverage":2464,"highest":2703,"lowest":2496,"trend":4654},
{"@item:=m.item":"cocainep","item":"cocainep","value":5353,"base":5320,"name":"Kokain","timestamp":1457522101,"average":5376.649,"baverage":5320,"highest":5424,"lowest":5332,"trend":4654},
{"@item:=m.item":"copperp","item":"copperp","value":2744,"base":2560,"name":"Kupferbarren","timestamp":1457522101,"average":2678.2929,"baverage":2560,"highest":2748,"lowest":2561,"trend":4654},
{"@item:=m.item":"diamond","item":"diamond","value":2613,"base":2448,"name":"Diamant","timestamp":1457522101,"average":2589.0126,"baverage":2448,"highest":2655,"lowest":2480,"trend":4654},
{"@item:=m.item":"display","item":"display","value":29634,"base":29054,"name":"Display","timestamp":1457522101,"average":29571.7121,"baverage":29054,"highest":29935,"lowest":29243,"trend":4654},
{"@item:=m.item":"eisenp","item":"eisenp","value":3211,"base":3548,"name":"Gussform","timestamp":1457522101,"average":3309.0581,"baverage":3548,"highest":3481,"lowest":3204,"trend":4654},
{"@item:=m.item":"getreideip","item":"getreideip","value":3598,"base":3630,"name":"Whiskey","timestamp":1457522101,"average":3570.197,"baverage":3630,"highest":3615,"lowest":3511,"trend":4654},
{"@item:=m.item":"getreidep","item":"getreidep","value":1165,"base":1660,"name":"Mehl","timestamp":1457522101,"average":1252.2273,"baverage":1660,"highest":1678,"lowest":1128,"trend":4654},
{"@item:=m.item":"glass","item":"glass","value":2659,"base":3320,"name":"Glass","timestamp":1457522101,"average":2823.0682,"baverage":3320,"highest":3244,"lowest":2606,"trend":4654},
{"@item:=m.item":"goldfischglas","item":"goldfischglas","value":90332,"base":86096,"name":"Goldfischglass","timestamp":1457522101,"average":88892.2475,"baverage":86096,"highest":90332,"lowest":86657,"trend":4654},
{"@item:=m.item":"gschmuck","item":"gschmuck","value":32293,"base":30596,"name":"Goldschmuck","timestamp":1457522101,"average":31706.9798,"baverage":30596,"highest":32293,"lowest":30795,"trend":4654},
{"@item:=m.item":"halbl","item":"halbl","value":8861,"base":8976,"name":"Halbleiter","timestamp":1457522101,"average":8909.0682,"baverage":8976,"highest":9201,"lowest":8684,"trend":4654},
{"@item:=m.item":"heroinp","item":"heroinp","value":4967,"base":5026,"name":"Heroin","timestamp":1457522101,"average":4997.2146,"baverage":5026,"highest":5055,"lowest":4948,"trend":4654},
{"@item:=m.item":"holzp","item":"holzp","value":2789,"base":2632,"name":"Holzkohle","timestamp":1457522101,"average":2757.0126,"baverage":2632,"highest":2823,"lowest":2639,"trend":4654},
{"@item:=m.item":"htrans","item":"htrans","value":13108,"base":12668,"name":"Hauttransplantat","timestamp":1457522101,"average":13100.4571,"baverage":12668,"highest":13339,"lowest":12751,"trend":4654},
{"@item:=m.item":"ironp","item":"ironp","value":2164,"base":1924,"name":"Eisenbarren","timestamp":1457522101,"average":2090.649,"baverage":1924,"highest":2164,"lowest":1961,"trend":4654},
{"@item:=m.item":"kkugel","item":"kkugel","value":11218,"base":10456,"name":"Kanonenkugel","timestamp":1457522101,"average":11096.1414,"baverage":10456,"highest":11329,"lowest":10592,"trend":4654},
{"@item:=m.item":"korallep","item":"korallep","value":1343,"base":1162,"name":"Dekorierte Koralle","timestamp":1457522101,"average":1266.1944,"baverage":1162,"highest":1343,"lowest":1151,"trend":4654},
{"@item:=m.item":"kunststoff","item":"kunststoff","value":1047,"base":2094,"name":"Kunststoff","timestamp":1457522101,"average":1142.8687,"baverage":2094,"highest":2190,"lowest":1047,"trend":4654},
{"@item:=m.item":"marijuana","item":"marijuana","value":4314,"base":4242,"name":"Marihuana","timestamp":1457522101,"average":4269.9596,"baverage":4242,"highest":4314,"lowest":4223,"trend":4654},
{"@item:=m.item":"muschelp","item":"muschelp","value":335,"base":406,"name":"Dekorierte Muschel","timestamp":1457522101,"average":359.5631,"baverage":406,"highest":431,"lowest":317,"trend":4654},
{"@item:=m.item":"nanop","item":"nanop","value":14934,"base":13426,"name":"Nanoprozessor","timestamp":1457522101,"average":14416.8914,"baverage":13426,"highest":14934,"lowest":13601,"trend":4654},
{"@item:=m.item":"notebook","item":"notebook","value":97271,"base":103506,"name":"Notebook","timestamp":1457522101,"average":99043.8232,"baverage":103506,"highest":103777,"lowest":96501,"trend":4654},
{"@item:=m.item":"oilp","item":"oilp","value":1498,"base":1930,"name":"Kraftstoff","timestamp":1457522101,"average":1832.6136,"baverage":1930,"highest":2019,"lowest":1471,"trend":4654},
{"@item:=m.item":"pkugel","item":"pkugel","value":38631,"base":39552,"name":"Piratenkugel","timestamp":1457522101,"average":40103.3384,"baverage":39552,"highest":40822,"lowest":38627,"trend":4654},
{"@item:=m.item":"prothese","item":"prothese","value":44513,"base":44928,"name":"Prothese","timestamp":1457522101,"average":45621.9318,"baverage":44928,"highest":46888,"lowest":44237,"trend":4654},
{"@item:=m.item":"pschmuck","item":"pschmuck","value":44055,"base":42114,"name":"Piratenschmuck","timestamp":1457522101,"average":43446.2273,"baverage":42114,"highest":44055,"lowest":42389,"trend":4654},
{"@item:=m.item":"reisip","item":"reisip","value":3142,"base":3530,"name":"Sake","timestamp":1457522101,"average":3267.2828,"baverage":3530,"highest":3592,"lowest":3082,"trend":4654},
{"@item:=m.item":"reisp","item":"reisp","value":1955,"base":1734,"name":"Reis","timestamp":1457522101,"average":1903.3813,"baverage":1734,"highest":1982,"lowest":1779,"trend":4654},
{"@item:=m.item":"saltp","item":"saltp","value":2690,"base":2624,"name":"Speisesalz","timestamp":1457522101,"average":2700.3889,"baverage":2624,"highest":2771,"lowest":2623,"trend":4654},
{"@item:=m.item":"schmuck","item":"schmuck","value":8319,"base":7604,"name":"Schmuck","timestamp":1457522101,"average":8098.3434,"baverage":7604,"highest":8352,"lowest":7703,"trend":4654},
{"@item:=m.item":"schwefelp","item":"schwefelp","value":2292,"base":2344,"name":"Schwefelpulver","timestamp":1457522101,"average":2286.2929,"baverage":2344,"highest":2357,"lowest":2234,"trend":4654},
{"@item:=m.item":"seidep","item":"seidep","value":1437,"base":1410,"name":"Seide","timestamp":1457522101,"average":1420.0884,"baverage":1410,"highest":1485,"lowest":1331,"trend":4654},
{"@item:=m.item":"silberp","item":"silberp","value":2981,"base":2754,"name":"Silberbarren","timestamp":1457522101,"average":2901.1944,"baverage":2754,"highest":2983,"lowest":2786,"trend":4654},
{"@item:=m.item":"spulver","item":"spulver","value":17756,"base":16898,"name":"Schwarzpulver","timestamp":1457522101,"average":17436.2348,"baverage":16898,"highest":17756,"lowest":16944,"trend":4654},
{"@item:=m.item":"statue","item":"statue","value":18320,"base":17888,"name":"Statue","timestamp":1457522101,"average":18160.6843,"baverage":17888,"highest":18320,"lowest":17879,"trend":4654},
{"@item:=m.item":"sushi","item":"sushi","value":14676,"base":13692,"name":"Sushi","timestamp":1457522101,"average":14354.6566,"baverage":13692,"highest":14676,"lowest":13670,"trend":4654},
{"@item:=m.item":"szellen","item":"szellen","value":2117,"base":2060,"name":"Stammzelle","timestamp":1457522101,"average":2113.3636,"baverage":2060,"highest":2160,"lowest":2073,"trend":4654},
{"@item:=m.item":"tfsteak","item":"tfsteak","value":6960,"base":6836,"name":"Thunfischsteak","timestamp":1457522101,"average":6942.4444,"baverage":6836,"highest":7008,"lowest":6787,"trend":4654},
{"@item:=m.item":"titanp","item":"titanp","value":2867,"base":2698,"name":"Titanbarren","timestamp":1457522101,"average":2791.4293,"baverage":2698,"highest":2867,"lowest":2706,"trend":4654},
{"@item:=m.item":"traubenp","item":"traubenp","value":2515,"base":2550,"name":"Wein","timestamp":1457522101,"average":2502.197,"baverage":2550,"highest":2603,"lowest":2441,"trend":4654},
{"@item:=m.item":"uranip","item":"uranip","value":7437,"base":7872,"name":"Angereichertes Uran","timestamp":1457522101,"average":7550.4369,"baverage":7872,"highest":7839,"lowest":7340,"trend":4654},
{"@item:=m.item":"uranp","item":"uranp","value":4994,"base":4768,"name":"Brennstab","timestamp":1457522101,"average":4962.5253,"baverage":4768,"highest":5082,"lowest":4780,"trend":4654},
{"@item:=m.item":"zinnp","item":"zinnp","value":3167,"base":2976,"name":"Zinnbarren","timestamp":1457522101,"average":3085.0278,"baverage":2976,"highest":3167,"lowest":2971,"trend":4654},
{"@item:=m.item":"zuckerip","item":"zuckerip","value":4895,"base":4858,"name":"Rum","timestamp":1457522101,"average":4849.6818,"baverage":4858,"highest":4895,"lowest":4752,"trend":4654},
{"@item:=m.item":"zuckerp","item":"zuckerp","value":2070,"base":2288,"name":"Zucker","timestamp":1457522101,"average":2252.1086,"baverage":2288,"highest":2370,"lowest":2068,"trend":4654}]
Alles anzeigen
Das Problem dass ich derzeit habe ist die "@item" variable
Im 1. Select scheint die Richtige Variable selektiert zu werden
Das Problem ist nun dass "trend" immer den Durchschnitts Wert von algenp vom ersten Select Durchgang drinnen stehen hat
Der Trend sollte immer den Durchschnitt der letzten 10 Werte des jeweiligen Items darstellen
Meine Datenbank Struktur von Tabelle market ist "id(int, autoincrement), item(varchar,255), value(int), base(int), timestamp(int) "
Die Markt werte werden derzeit im 15 Minuten Intervall in diese Tabelle geschrieben
Und die Struktur von names wäre "id(int, autoincrement), item(varchar,255), name(varchar,255)"
Mir ist noch nicht ganz klar warum die @item variable nicht geändert wird oder falsch angezeigt wird...
Oder habe ich mit der Variable in SQL etwas falsch verstanden?
//EDIT
Ich habe bereits zum Testen die 2 Befehle auf meiner Datenbank ausgeführt:
SELECT avg(m1.value) FROM ( SELECT value FROM market WHERE item = 'algenp' ORDER BY timestamp DESC LIMIT 10 ) m1
Wobei hier das Ergebnis eben das von "trend" ist
SELECT avg(m1.value) FROM ( SELECT value FROM market WHERE item = 'aquarium' ORDER BY timestamp DESC LIMIT 10 ) m1
Das hier wiederrum ist ein ganz anderes Ergebnis welches ich eigentlich in der Row "trend" erwarten würde...