Предположим, у меня есть эта таблица: с именем = the_table структура которого:Групповое предложение в mySQL и postgreSQL, почему ошибка в postgreSQL?
PostGreSQL:
create table the_table (col3 SERIAL, col2 varchar, col1 varchar, PRIMARY KEY(col3));
MySQL:
create table the_table (col3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, col2 varchar(20), col1 varchar(20))
Затем я вставил таблицу:
INSERT INTO the_table (col2,col1) VALUES
('x','a'),
('x','b'),
('y','c'),
('y','d'),
('z','e'),
('z','f');
Теперь таблица выглядит следующим образом:
col3 | col2 | col1
------+------+------
1 | x | a
2 | x | b
3 | y | c
4 | y | d
5 | z | e
6 | z | f
Когда я делаю этот запрос:
select * from the_table group by col2
затем в MySQL я получаю:
1 x a
3 y c
5 z e
и PostGreSQL, я получаю сообщение об ошибке:
ERROR: column "the_table.col3" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select * from the_table group by col2;
Мои вопросы:
Что означает эта ошибка? Что такое агрегатная функция?
Когда он работает в MySQL, почему он не может работать в postgreSQL?
Он работает в MySQL, потому что MySQL не работает. , , в том смысле, что MySQL поддерживает расширение, которое запрещено стандартом и не поддерживается в большинстве других баз данных. –