Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
6 / 6 / 7
Регистрация: 16.05.2013
Сообщений: 351
1

Простые запросы: Street и Person

23.04.2017, 11:27. Показов 5636. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

Только разбираюсь с SQL, было бы просто замечательно, если вы поможете мне разобраться в ряде запросов, чтобы наглядно понять что к чему.

Заранее спасибо!

Даны две таблицы:
Список улиц - Street (Id, Name)
Cписок жильцов - Person (Id, FirstName, LastName, Age, Id_Street)

Задания:
1) Вывести общее число жителей
2) Вывести средний возраст жителей
3) Вывести отсортированный по алфавиту список фамилий без повторений
4) Вывести список фамилий, с указанием количества повторений этих фамилий в общем списке
5) Вывести фамилии, которые содержат в середине букву «б»
6) Вывести список «бомжей»
7) Вывести список несовершеннолетних, проживающих на проспекте Правды
8) Вывести упорядоченный по алфавиту список всех улиц с указанием, сколько жильцов живёт на улице
9) Вывести список улиц, название которых состоит из 6-ти букв
10) Вывести список улиц с количеством жильцов на них меньше 3

Добавлено через 15 часов 30 минут
Немного разьираюсь... Если кому ещё пригодится =)
1) SELECT COUNT(*) FROM `person`;
2) SELECT AVG(Age) AS AgeAvg FROM person;
3) SELECT LastName FROM person ORDER BY LastName ASC (без проверки на повторения)
4) SELECT COUNT(*) AS cnt, LastName FROM person GROUP BY LastName ORDER BY `cnt` ASC

Добавлено через 27 минут
6) SELECT * FROM `person` WHERE Id_Street IS NULL
7) SELECT * FROM person WHERE Age<18 AND Id_Street = 4;
9) SELECT Name FROM `street` WHERE length(Name) LIKE 6

было бы чудесно, если бы кто-то помог с написание пункта 5, 8, 10 =)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2017, 11:27
Ответы с готовыми решениями:

Медленно работают простые запросы, но с сортировкой
SELECT id FROM table WHERE status=1 ORDER BY date_add DESC Индексы: status (int) date_add...

Vector, push_back. Cannot convert parameter 1 from 'person' to 'person ^'
Помогите разобраться с push_back. Появляется ошибка error C2664: 'void std::vector&lt;_Ty&gt;::...

простые запросы
здравствуйте! помоги, пожалуйста, найти ошибку в моем запросе: SELECT Year(Got_postuplenia)= AS ,...

Простые запросы
Всем доброго времени суток. При создании программы возникла необходимость использовать БД....

4
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
23.04.2017, 14:18 2
5) WHERE Name LIKE '%б%'
8) WHERE Name LIKE ______'
10)
SQL
1
2
3
  SELECT NANE FROM Street WHERE ID NOT IN (
    SELECT Id_Street FROM Person GROUP BY Id_Street HAVING COUNT(*) >= 3 
)
0
6 / 6 / 7
Регистрация: 16.05.2013
Сообщений: 351
24.04.2017, 14:37  [ТС] 3
За 5 и 10 запрос спасибо =) Однако восьмой запрос не дает желаемого эффекта (да и видом доверия не внушает)...
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
24.04.2017, 15:18 4
сорри, промахнулся, это был к 9) про 6 букв

Добавлено через 5 минут
SQL
1
2
3
4
5
6
SELECT Street.NAME, g.Cnt 
FROM 
  Street 
  LEFT JOIN ( SELECT Id_Street, COUNT(*) Cnt FROM Person GROUP BY Id_Street ) g ON 
    Street.Id = g.Id_Street
ORDER BY Street.NAME
SQL
1
2
3
4
5
6
SELECT Street.NAME, COUNT(Person.Id)  Cnt
FROM 
  Street 
  LEFT JOIN Person ON Person.Id_Street = Street.Id  
GROUP BY Street.NAME
ORDER BY Street.NAME
0
35 / 33 / 9
Регистрация: 27.10.2015
Сообщений: 115
24.04.2017, 15:39 5
Лучший ответ Сообщение было отмечено SnapeEye как решение

Решение

1) Вывести общее число жителей
SQL
1
SELECT COUNT(*) FROM Person
2) Вывести средний возраст жителей
SQL
1
SELECT avg(age) FROM person
3) Вывести отсортированный по алфавиту список фамилий без повторений
SQL
1
SELECT DISTINCT FirstName FROM Person ORDER BY FirstName
4) Вывести список фамилий, с указанием количества повторений этих фамилий в общем списке
SQL
1
SELECT FirstName, COUNT(*) FROM person GROUP BY FirstName
5) Вывести фамилии, которые содержат в середине букву «б»
SQL
1
SELECT FirstName FROM person WHERE person LIKE '_%б%_'
6) Вывести список «бомжей»
SQL
1
SELECT * FROM person WHERE id_street IS NULL
7) Вывести список несовершеннолетних, проживающих на проспекте Правды
SQL
1
2
SELECT person.* FROM person JOIN street ON person.id_street = street.id
WHERE UPPER(street.name) LIKE '%ПРОСПЕКТ ПРАВДЫ%' AND person.age < 18
8) Вывести упорядоченный по алфавиту список всех улиц с указанием, сколько жильцов живёт на улице
SQL
1
2
SELECT street.id, street.name, COUNT(person.id) FROM street JOIN person ON street.id = person.id_street 
GROUP BY street.id, street.name
9) Вывести список улиц, название которых состоит из 6-ти букв
SQL
1
SELECT * FROM street WHERE LENGTH(name) = 6
10) Вывести список улиц с количеством жильцов на них меньше 3
SQL
1
2
3
SELECT street.id, street.name FROM street JOIN person ON street.id = person.id_street
GROUP BY street.id, street.name
HAVING COUNT(person.id) < 3
1
24.04.2017, 15:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2017, 15:39
Помогаю со студенческими работами здесь

простые запросы
Определить Общау сумма продажи, за май месяц Количество различных наименование по формал...

Простые запросы на выборку
Как в условии отбора ( когда делаешь запрос) сделать так чтобы из нескольких цифр которые заданы он...

Простые запросы на выборку
Вычислите сумму и число тех элементов заданного вектора X1, X2, ... , Xn, значение которых меньше...

Простые SQL запросы
Из таблицы ZIPCODE_INFO запросить zip_code, city, state в виде одного столбца. Разделить данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru