Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с SQL.

NovaX nah Ученик (144), на голосовании 11 месяцев назад
Посчитайте, сколько в среднем клиент с браслетом (поле bracelet_id) 145863 потратил на хот-доги с добавлением кетчупа и майонеза одновременно или на хот-доги с мясной сосиской. Если кетчуп и майонез добавлены, поля mayonnaise и ketchup содержат значение 1.
Голосование за лучший ответ
Инспектор Жопидý Оракул (86401) 1 год назад
Вот запрос SQL, который вы можете использовать для подсчета среднего расхода на хот-доги с добавлением кетчупа и майонеза одновременно или на хот-доги с мясной сосиской для клиента с браслетом 145863:

```sql
SELECT
AVG(price) AS average_spend
FROM
hotdogs
WHERE
bracelet_id = 145863
AND (mayonnaise = 1 AND ketchup = 1)
OR sausage_type = 'meat';
```

Этот запрос сначала выбирает все строки из таблицы `hotdogs`, где браслет клиента равен 145863. Затем он использует оператор `OR`, чтобы объединить два условия:

* **(mayonnaise = 1 AND ketchup = 1)**: Это условие выбирает все хот-доги, на которые добавлены кетчуп и майонез.
* **sausage_type = 'meat':** Это условие выбирает все хот-доги с мясной сосиской.

После этого запрос вычисляет среднее значение поля `price` для всех строк, которые соответствуют условиям.

Вот пример выходных данных этого запроса:

```
average_spend
-------
5.00
```

Это означает, что клиент с браслетом 145863 в среднем тратит 5 долларов на хот-доги с добавлением кетчупа и майонеза одновременно или на хот-доги с мясной сосиской.

Вот еще один вариант запроса, который можно использовать:

```sql
SELECT
AVG(price) AS average_spend
FROM
hotdogs
WHERE
bracelet_id = 145863
AND (mayonnaise + ketchup) = 2
OR sausage_type = 'meat';
```

Этот запрос использует более простой подход, используя оператор `+` для суммирования значений полей `mayonnaise` и `ketchup`. Если сумма равна 2, это означает, что на хот-дог добавлены кетчуп и майонез.

Вот пример выходных данных этого запроса:

```
average_spend
-------
5.00
```

Этот результат такой же, как и результат первого запроса.
CausonQ Мудрец (13341) 1 год назад
Вот накой тебе этот курс, если ты са разобраться не хочешь? Проще этого запроса будет только обычный SELECT
Konstantin Знаток (341) 11 месяцев назад
SELECT AVG(price*quantity)
--bracelet_id,price,quantity,vegan_sausage,mayonnaise,ketchup
FROM hotdog
WHERE bracelet_id = 145863
AND ((vegan_sausage = 1 AND mayonnaise = 1 AND ketchup = 1) OR vegan_sausage = 0);
Похожие вопросы