©SQL :: Manager
HomeProgramm-InformationenTechnische DetailsKostenloser DownloadKaffee für den Autor
Netzwelt
SQL-FunktionMySQL

MySQL ANY_VALUE SQL-Funktion - Wert-Rückgabe ohne GROUP BY-Angabe

ANY_VALUESyntax:ANY_VALUE(Spalte)
Rückgabe-Wert:Abhängig von den verwendeten Datentypen
Funktions-Typ:Aggregat-Funktion
Funktions-Beschreibung

Die SQL-Funktion ANY_VALUE() gibt bei GROUP BY-Abfragen für ein Tabellenfeld "Spalte" einen ihrer Werte zurück, wenn der SQL-Modus ONLY_FULL_GROUP_BY aktiviert ist und das Feld "Spalte" nicht in der GROUP BY-Klausel vorhanden ist und sonst zu einer Fehlermeldung führen würde.

Die Funktion ist keine Aggregatfunktion und kann nicht in einer GROUP BY-Klausel verwendet werden.


In MariaDB sit diese Funktion nicht vorhanden.

SQL Beispiele für die ANY_VALUE-Funktion

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

DROP TABLE IF EXISTS `test_table`;
    
CREATE TABLE `test_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `type` enum('First','Second','Third','Last'DEFAULT NULL,
  `set` set('First','Second','Third','Last'DEFAULT NULL,
  `num1` int(11) NOT NULL DEFAULT 0,
  `num2` int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;

INSERT INTO `test_table` (`id`,`name`,`type`,`set`,`num1`,`num2`VALUES 
(1,'Art 1','First','Last',1,7),
(2,'Art 2','Second','First,Last',3,7),
(3,'Art 3','Second','Second,Last',5,7),
(4,'Art 4','Third','First,Second,Last',5,7),
(5,'Art 5','Last','First,Last',7,15),
(6,'Art 6','First','First,Last',7,15),
(7,'Art 7','Third','First,Third,Last',9,15),
(8,'Art 8','Last','Second,Third,Last',9,15);

select * from `test_table`;

select id, max(num2), `type` from test_table group by `type`;

select any_value(id), max(num2), `type` from test_table group by `type`;

id
name
type
set
num1
num2
intvarchar(20) LATIN1enum LATIN1set LATIN1intint
1Art 1FirstLast17
2Art 2SecondFirst,Last37
3Art 3SecondSecond,Last57
4Art 4ThirdFirst,Second,Last57
5Art 5LastFirst,Last715
6Art 6FirstFirst,Last715
7Art 7ThirdFirst,Third,Last915
8Art 8LastSecond,Third,Last915
   select id, max(num2), `type` from test_table group by `type` 
errno: 1055  sqlstate: 42000  error: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.test_table.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by  
any_value(id)
max(num2)
type

bigint(11)

int(11)
test_table
enum LATIN1
115First
27Second
415Third
515Last
Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: Download

Verwendung der ANY_VALUE() Funktion in MySQL-Datenbanken

In MySQL wird die Funktion ANY_VALUE() verwendet, um anzuzeigen, dass eine nicht gruppierte Spalte in einer SQL-Abfrage ausgewählt wurde, wobei die Abfrage die GROUP BY-Klausel verwendet. Wenn die GROUP BY-Klausel verwendet wrid, müssen alle ausgewählten Spalten der Ergebnismenge entweder Teil der Gruppierungskriterien sein oder in Aggregatfunktionen wie COUNT(), SUM(), AVG(), MAX(), MIN() usw ... eingeschlossen sein. Die Funktion kann in Situationen angewendet werden, in denen eine nicht gruppierte Spalte in einer SELECT-Anweisung einschlossen werden soll, ohne eine Aggregatfunktion darauf anzuwenden. Dabei ist für jede Gruppe jeder Wert aus dieser Spalte akzeptabel. Die Funktion unterdrückt im Wesentlichen die Fehler-Meldung, wenn nicht aggregierte Tabellen-Spalten nicht Teil der GROUP BY-Klausel sind.

Die Funktion ANY_VALUE() ist in MySQL ab Version 8.0 verfügbar. Da der Rückgabe-Wert der Funktion undefiniert ist, können anstelle von ANY_VALUE() auch Funktionen wie zum Beispiel MIN() oder MAX als Alternative gewählt werden.
ADDTIMEAES_DECRYPTAES_ENCRYPTANY_VALUEASCIIASINATAN

Weitere MySQL und MariaDB SQL Aggregat-Funktionen

AVGAVG(Ausdruck oder Spalte)
Mehr zur AVG-Funktion

BIT_ANDBIT_AND(Ausdruck oder Spalte)
Mehr zur BIT_AND-Funktion

BIT_ORBIT_OR(Ausdruck oder Spalte)
Mehr zur BIT_OR-Funktion

BIT_XORBIT_XOR(Ausdruck oder Spalte)
Mehr zur BIT_XOR-Funktion

COUNTCOUNT(Ausdruck oder Spalte)
Mehr zur COUNT-Funktion

GROUP_CONCATGROUP_CONCAT([DISTINCT] Ausdruck [, Ausdruck ...] [ORDER BY ... [ASC | DESC]] [SEPARATOR ...] [LIMIT ...])
Mehr zur GROUP_CONCAT-Funktion

JSON_ARRAYAGGJSON_ARRAYAGG(Ausdruck oder Spalte)

JSON_OBJECTAGGJSON_OBJECTAGG(Ausdruck oder Spalte)

MAXMAX(Ausdruck oder Spalte)
Mehr zur MAX-Funktion

MINMIN(Ausdruck oder Spalte)
Mehr zur MIN-Funktion

SUMSUM(Ausdruck oder Spalte)
Mehr zur SUM-Funktion

STDSTD(Ausdruck oder Spalte)
Mehr zur STD-Funktion

STDDEVSTDDEV(Ausdruck oder Spalte)
Mehr zur STDDEV-Funktion

STDDEV_POPSTDDEV_POP(Ausdruck oder Spalte)
Mehr zur STDDEV_POP-Funktion

STDDEV_SAMPSTDDEV_SAMP(Ausdruck oder Spalte)
Mehr zur STDDEV_SAMP-Funktion

VAR_POPVAR_POP(Ausdruck oder Spalte)
Mehr zur VAR_POP-Funktion

VAR_SAMPVAR_SAMP(Ausdruck oder Spalte)
Mehr zur VAR_SAMP-Funktion

VARIANCEVARIANCE(Ausdruck oder Spalte)
Mehr zur VARIANCE-Funktion

Numerische FunktionenZeichenketten-FunktionenReguläre AusdrückeDatum und Zeit-Funktionen
Vergleichs-FunktionenVerschlüsselung & KomprimierungKonvertierungs-FunktionenNULL-Funktionen
Aggregat-FunktionenWindow-FunktionenJSON-FunktionenGeometrische Funktionen
Sequenz-FunktionenInformations-FunktionenDynamische Tabellen-SpaltenSonstige Funktionen
Weitere Informationen zur SQL-Funktion ANY_VALUE: mysql.com
Aktualisiert: 17.09.2023ImpressumKontaktGeschäftsbedingungenDatenschutz & CookiesUpdatesSitemapFacebookLinkedinTwitterStatistics©2020-2024 Heino Cunze-Fischer