#sql
Вопрос:
У меня есть таблица, как показано ниже. Как мне написать SQL-код, если я хочу подсчитать, сколько раз строка (например, X = A, Y = B) появляется и возвращается как Z? Спасибо
Select * X, Y
from DataBase
Результаты :
X Y Z(to be determined..)
--------------------
A Burger 2
A Burger 2
A Fries 1
B Burger 2
B Pie 1
B Burger 2
C Pie 2
C Pie 2
C Burger 1
. . .
. . .
. . .
Комментарии:
1. Что вы пробовали до сих пор? Где ты застрял? Какую систему баз данных вы хотите использовать?
2. Какую СУБД вы используете? Вы можете сделать это с помощью оконных функций, если они поддерживаются
Ответ №1:
Вы можете сделать:
select X,Y,count(*) from Table group by X,Y
Комментарии:
1. Это не будет показывать повторяющиеся строки, которые хочет OP
2. @shree.pat18 повторяющиеся строки-это бессмысленно, зачем вам их считать, если вы хотите, чтобы повторяющиеся строки были в наборе результатов?!?!
3. Спросите об этом у ОП. Ваше решение не удовлетворяет требованиям в их нынешнем виде
4. Пожалуйста, добавьте некоторые пояснения к вашему ответу, чтобы другие могли извлечь из него уроки
Ответ №2:
Вы ищете функцию окна:
select t.*, count(*) over (partition by x, y) as z
from DataBase t;