powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбор статистики (помогите составить JIOIN)
4 сообщений из 4, страница 1 из 1
Выбор статистики (помогите составить JIOIN)
    #39847349
wlad1164
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Имеется 2 таблицы:
1. Таблица вопросов `Questions`(`id`, `Cat`, `IssueJSON`)
2. Таблица ответов `Questions_Stat`(`id`, `TlgID`, `UserName`, `FirstName`, `ChatID`, `QuestionID`, `QuestionRez`, `Date`)

Получаю SELECT'ом вот такую табличку:
SELECT DISTINCT `TlgID` As TlgID,COUNT(*) As Kolvo,sum(`QuestionRez`) as Ball,(SELECT Cat from Questions WHERE `id`=`QuestionID`) As Cat FROM `Questions_Stat` GROUP BY Cat,TlgID

TlgID|Kolvo|Ball|Cat
465368901|16|10|EB12585
111171947|2|1|PDD
201071894|1|1|PDD
393702586|2|1|PDD
436299614|3|3|PDD
465368901|14|14|PDD
472747020|2|0|PDD

В которой показано какой из пользователей(TlgID) сколько раз ответил (Kolvo), сколько из них правильно(Ball) и из какой категории (Cat)

Необходимо в эту таблицу добавить еще 2 столбца (UserName и FirstName) из таблицы Questions_Stat, значения должны выбраться из строки с максимальным Questions_Stat.id
т.е. в Questions_Stat может быть 2 строки:
`id`, `TlgID`, `UserName`, `FirstName`, `ChatID`, `QuestionID`, `QuestionRez`, `Date`
10|465368901|usernameOLD|firstnameOLD|10101010|30|1|2019-08-09 00:00
99|465368901|usernameNEV|firstnameNEV|10101010|39|0|2019-08-09 00:00
Соответственно для всех TlgID=465368901 из SELECT'а выше UserName будет = usernameNEV, FirstName=firstnameNEV

Насколько я понял мне нужен INNER JION, но при попытке составить запрос либо ошибка либо возвращается очень много строк
Select t1.TlgID,t1.Kolvo,t1.Ball,t1.Cat,t2.UserName FROM (SELECT DISTINCT `TlgID` As TlgID,COUNT(*) As Kolvo,sum(`QuestionRez`) as Ball,(SELECT Cat from Questions WHERE `id`=`QuestionID`) As Cat FROM `Questions_Stat` GROUP BY Cat,TlgID) As t1 INNER JOIN Questions_Stat t2 ON t1.`TlgID` = t2.`TlgID`; - это мои попытки создать правильный запрос...

Извиняюсь если объяснил запутанно, старался как можно подробнее объяснить
...
Рейтинг: 0 / 0
Выбор статистики (помогите составить JIOIN)
    #39847351
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, ну за 28 постов можно же было научиться использовать тег форматирования кода и пользоваться предпросмотром!!!

Вот лично я не буду глаза ломать на этой лапше.
...
Рейтинг: 0 / 0
Выбор статистики (помогите составить JIOIN)
    #39847359
wlad1164
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, извиняюсь за форматирование, в этот раз почему то забыл про него...
Кнопку изменения поста увы не нашел, надежда только на модераторов. если возможно перенесите текст из этого сообщения в первое

Имеется 2 таблицы:
1. Таблица вопросов
Код: plsql
1.
`Questions`(`id`, `Cat`, `IssueJSON`)


2. Таблица ответов
Код: plsql
1.
`Questions_Stat`(`id`, `TlgID`, `UserName`, `FirstName`, `ChatID`, `QuestionID`, `QuestionRez`, `Date`)



Получаю SELECT'ом вот такую табличку:
Код: plsql
1.
SELECT DISTINCT `TlgID` As TlgID,COUNT(*) As Kolvo,sum(`QuestionRez`) as Ball,(SELECT Cat from Questions WHERE `id`=`QuestionID`) As Cat FROM `Questions_Stat` GROUP BY Cat,TlgID




В которой показано какой из пользователей(TlgID) сколько раз ответил (Kolvo), сколько из них правильно(Ball) и из какой категории (Cat)

Необходимо в эту таблицу добавить еще 2 столбца (UserName и FirstName) из таблицы Questions_Stat, значения должны выбраться из строки с максимальным Questions_Stat.id
т.е. в Questions_Stat может быть 2 строки:
Код: plsql
1.
2.
3.
`id`, `TlgID`, `UserName`, `FirstName`, `ChatID`, `QuestionID`, `QuestionRez`, `Date`
10|465368901|usernameOLD|firstnameOLD|10101010|30|1|2019-08-09 00:00
99|465368901|usernameNEV|firstnameNEV|10101010|39|0|2019-08-09 00:00



Соответственно для всех TlgID=465368901 из SELECT'а выше UserName будет = usernameNEV, FirstName=firstnameNEV

Насколько я понял мне нужен INNER JION, но при попытке составить запрос либо ошибка либо возвращается очень много строк (ниже мои попытки создать запрос)
Код: plsql
1.
Select t1.TlgID,t1.Kolvo,t1.Ball,t1.Cat,t2.UserName FROM (SELECT DISTINCT `TlgID` As TlgID,COUNT(*) As Kolvo,sum(`QuestionRez`) as Ball,(SELECT Cat from Questions WHERE `id`=`QuestionID`) As Cat FROM `Questions_Stat` GROUP BY Cat,TlgID) As t1 INNER JOIN Questions_Stat t2 ON t1.`TlgID` = t2.`TlgID`;



Извиняюсь если объяснил запутанно, старался как можно подробнее объяснить
...
Рейтинг: 0 / 0
Выбор статистики (помогите составить JIOIN)
    #39847367
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А за каким хреном Вы используете подзапрос? Чтобы сервер зае утомился?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT qs.TlgID, 
       COUNT(q.QuestionRez) Kolvo, 
       SUM(q.QuestionRez) Ball, 
       qs.Cat, 
       qs.UserName, 
       qs.FirstName
FROM Questions q
JOIN Questions_Stat qs 
    ON q.id = qs.QuestionID
GROUP BY qs.TlgID, 
         qs.Cat 
         /* , qs.UserName, qs.FirstName */



wlad1164в этот раз почему то забыл про него...
Про предпросмотр Вы и в этот раз забыли... ну что за скролл? Вы не знаете, что текст запросов можно форматировать, в т.ч. в несколько строк?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбор статистики (помогите составить JIOIN)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]