#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 М.