Значения из таблицы с переменными

#mysql #sql #database #algorithm

Вопрос:

Таблица R(A1,A2,A3,A4,A5,A6) содержит 6 столбцов с натуральными числами (0,1,2,3,..)

 R
-----------------------------
A1| A2 |A3 |A4 | A5 |A6
0 | 1  | 0 |  1| 1  |0
1 | 0  | 0 | 1 | 0  |0
0 | 0  | 0 | K  |0  |0
0 | 0  | 1 |0  | 1  |0
0 | 1  | 1 | 1 | 1  |0
1 | 1  |1  | 1 | 0  |1
1 | 1  | 1 | 1 | 0  |1
1 | 1  | 1 | 0 | M  |1
1|  1  | 0 |1  | 1  |0
0 | 1  |0  |1  | 0  |0
1 | 1  | 0 |0  | 0  |0
 

введите описание изображения здесь

Вопрос : Для каких значений K и M выполнение кода SQL вычисляет/выдает результат (СУММА(d),СУММА(e)) пары значений(15,22)?

Информация:Я действительно понятия не имею, как я могу решить такое упражнение.Может ли кто-нибудь ответить на этот вопрос?Я искал везде, но ничего похожего на это не было. Я хочу понять его образ мышления. Пожалуйста, кто-нибудь, если может помочь с этим.

Комментарии:

1. Это не совсем подходит в качестве SQL-запроса. Более того, если значения являются числами, вы не можете представить это в виде таблицы, поэтому я немного не понимаю, как выглядят ваши данные. И d и e не определены.

2. Я думаю, что это называется «функциональные отношения». d и e определены на изображении. Я верю, что переменные K и M являются числами

3. Пожалуйста, замените изображение текстом в блоке кода.

4. Это больше похоже на математическую задачу, чем на SQL. SQL просто используется для представления математических отношений между значениями в матрице.

5. Да, но без знаний SQL нет никакой надежды выполнить домашнее задание этого чувака за него.

Ответ №1:

К = 11
М = 17

R1
GROUP BY R.A6 это означает, что вы смотрите на две группы (0 или 1).
HAVING SUM(R.A3)>2 означает, что вам нужна только группа, в которой сумма R. A3 в этой группе больше 2.
Таким образом, вы смотрите только на строки, в которых A6 = 1.
d = COUNT(R.A4) = 3 (количество строк, в которых A6 = 1)
e = 2 SUM(R.A5) = 2 M

R2
GROUP BY R.A2 означает, что вы смотрите на две группы (0 или 1).
HAVING SUM(R.A1)<3 означает, что вам нужна только группа, в которой сумма R. A1 в группе меньше 3.
Таким образом, вы смотрите только на строки, в которых A2 = 0. d = SUM(R.A4) = 1 K
e = COUNT(R.A5 = 3 (количество строк, в которых A2 = 0)

R3
Объединение просто добавляет строки из R2 в строки из R1.

Так,

 SELECT SUM(d), SUM(e)
FROM R3
 

…производит 4 К и 5 М.