Mám tabuľku s dvoma stĺpcami, napríklad table_data
id value
1 2
1 5
1 4
select * from table_data group by id
ale mám výstup je 1 1..but vlastne chcem tento výstup pre môj príklad priania 1 4 alebo 1 5 ... ako sa dostať?
odpovede:
0 pre odpoveď č. 1Pomocou tejto funkcie môžete použiť maximálnu hodnotu Funkcia MAX
SELECT id, MAX(value)
FROM table_data
GROUP BY id
0 pre odpoveď č. 2
vyberte id, max (value) zo skupiny table_data podľa id
vráti sa 1, 5
vyberte id, min (value) zo skupiny table_data podľa id
vráti sa 1,2.
v tomto prípade 1, 4 nie je možné.
0 pre odpoveď č. 3
SELECT id, MAX(value)
FROM table_data
GROUP BY id
0 pre odpoveď č. 4
Použiť MAX s GROUP BY:
select id, MAX(value) from table_data group by id
Ak potrebujete niektorú z hodnôt v skupine, aby sa zobrazila v sade výsledkov, stačí stačí GROUP BY. Ale musíte vedieť, že výstupný riadok nie je určený.
Normálne bude prvý riadok, ktorý spracúva, uvedený do výstupu reprezentujúceho jeho skupinu.
Tu je ukážka:
mysql> create table table_data(id int, value int);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into table_data values (1,4),(1,5),(1,2);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM table_data;
SEL+------+-------+
| id | value |
+------+-------+
| 1 | 4 |
| 1 | 5 |
| 1 | 2 |
+------+-------+
3 rows in set (0.00 sec)
mysql> SELECT * FROM table_data GROUP BY id;
+------+-------+
| id | value |
+------+-------+
| 1 | 4 |
+------+-------+
1 row in set (0.00 sec)
0 pre odpoveď č. 5
select m.id,m.value from
(SELECT * FROM table_data order by field(value,4,2,5))m
group by m.id
môžeme dostať čokoľvek, čo chceme ...
urobil to