|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Добрый день, уважаемые гуру Имеется таблица авторCREATE TABLE `participants` ( `participantscode` integer PRIMARY KEY AUTOINCREMENT UNIQUE, `firstname` text NOT NULL, `name` text NOT NULL, `secondname` text, `pclass` integer ( 4 ), `pcharacter` TEXT, `zachet` boolean DEFAULT 0 ); insert into participants (firstname, name, secondname, pclass, pcharacter, zachet) values('Зеленова', 'Надежда', 'Андреевна', 8, 'А', 1); insert into participants (firstname, name, secondname, pclass, pcharacter, zachet) values('Петров', 'Олег', 'Витальевич', 8, 'А', 0); insert into participants (firstname, name, secondname, pclass, pcharacter, zachet) values('Иванов', 'Александр', 'Михайлович', 8, 'А', 1); insert into participants (firstname, name, secondname, pclass, pcharacter, zachet) values('Борисов', 'Константин', 'Львович', 8, 'Б', 1); insert into participants (firstname, name, secondname, pclass, pcharacter, zachet) values('Белова', 'Валентина', 'Олеговна', 8, 'Б', 0); insert into participants (firstname, name, secondname, pclass, pcharacter, zachet) values('Сергеев', 'Антон', 'Иванович', 8, 'А', 1); Нужно составить запрос который бы выводил Класс, Букву, Количество получивших зачет (zachet = 1), Общее количество Могу посчитать общее количество: авторselect pclass, pcharacter, count(*) from participants group by pclass, pcharacter Или количество получивших зачет: авторselect pclass, pcharacter, count(*) from participants where zachet = 1 group by pclass, pcharacter А как это вместе объединить не могу разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2018, 14:08 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Если zachet у тебя всегда 1 или 0, то его можно не считать, а суммировать. Код: sql 1. 2. 3.
Для более сложных вещей подобного типа можно использовать WITH И очень советую полистать англо-русский словарь. Имена колонок чрезвычайно смущают. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2018, 16:29 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
1. не надо плодить людей в системе сделайте 1 таблицу - users и раскидайте их по группам (отдельная таблица). всё. одни и те же юзеры могут быть как клиентами, так и пользователями системы, и даже 'participants' 2. человекоподобные названия для колонок: id int unsigned auto_increment, name1 varchar(64) not null, name2 varchar(64), name3 varchar(64), class tinyint not null, letter char(1), passed timestamp, added timestamp default now() 3. кошег'ный INSERT: INSERT INTO participants (name1, name2, name3, class, letter, passed) VALUES ('Зеленова', 'Надежда', 'Андреевна', 8, 'А', now()), ('Петров', 'Олег', 'Витальевич', 8, 'А', null), ('Сергеев', 'Антон', 'Иванович', 8, 'А', now()); ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 00:40 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
но это при условии, что passed у юзера бывает только раз в жизни (что маловероятно), а иначе его пихать в другую таблицу и погружаться в нормализацию ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 00:42 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
в общем так: Код: sql 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. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 01:10 |
|
|
start [/forum/topic.php?fid=54&fpage=4&tid=2008431]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 266ms |
total: | 391ms |
0 / 0 |