Задавайте вопросы, мы ответим
Вы не зашли.
не выкладывается перепечатывать текст..это долго....
Молодой человек, Вы издеваетесь или как?
Неактивен
нет....блин...я не прошу сделать за меня задания..мне просто азы надо объяснить там просто очень...чувствую прям)
Неактивен
Если Вам долго перепечатать несколько строчек текста с Вашей картинки с заданием, то никакая помощь Вам оказана не будет.
Неактивен
да не сложно..
имеется таблица TEST_TABLE1 имеющая структуру имеется таблица TEST_TABLE2 имеющая структуру
id integer id integer
value integer code integer
descript varchar(20)
Id value descript id code
1 20 val1 1 215
2 500 val2 2 322
3 30 val3 3 73
4 60 val4 4 142
5 100 val5 8 282
6 60 val6
7 100 val7
8 60 val8
Неактивен
Уже лучше. Имеются две таблицы, и что дальше? В чем вопрос?
Неактивен
вот..и надо
надо написать SQL коды для решения след задач
1 Посчитать проценты каждого значения Value от общей суммы и отсортировать по убыванию.
2 Вывести ИД повторяемых значений по полю value
3 Удалить повторяющиеся записи (по значению value) оставив по одной записи
4 Изменить поле descript cлед образом: преобразовать поле в числовое и оставить только числовую часть значения
5 Представить распределение записей по полю value с шагом 100
6 вывести code для всех записей из таблицы TEST_TABLE1 у которых value > 70
Неактивен
вот в принципе задания не слож видимо потому как всего две таблицы и знач не так много..т е и задачки то простые отсортировать и т д...
вот мне нужны азы....понимаете..т е если за меня сделают то толку мало поэтому я не прошу чтобы сделали за меня..мне самому понять надо..
блин..моя благодарность не будет иметь границ в пределах разумного)
Неактивен
1. SELECT id,`value`*100/(SELECT sum(`value`) FROM t_5450_TEST_TABLE1) as p FROM t_5450_TEST_TABLE1 ORDER BY p DESC
2. select id from t_5450_TEST_TABLE1 WHERE `value` IN (SELECT `value` FROM t_5450_TEST_TABLE1 group by `value` having count(*) > 1);
3. По идее так:
DELETE FROM t_5450_TEST_TABLE1 WHERE id NOT IN (SELECT min(id) FROM t_5450_TEST_TABLE1 group by `value` );
Правда MySQL ругается: ERROR 1093 (HY000): You can't specify target table 't_5450_TEST_TABLE1' for update in FROM clause
В postgresql такая штука, к слову, работает. Можно сделать трюк со временной таблицей - но не факт, что это примут преподаватели. Вопрос к знающим: как можно в mysql такое сделать одним запросом?
4. Сначала срезать val - UPDATE t_5450_TEST_TABLE1 SET descript = substr(descript,4);
Потом ALTER TABLE t_5450_TEST_TABLE1 modify descript int;
Сразу тип колонки нельзя менять, потому что иначе значения value пропадут - то есть обратятся в ноль.
по 5-м и 6-м пунктам я писал ранее.
Неактивен
deadka написал:
3. По идее так:
DELETE FROM t_5450_TEST_TABLE1 WHERE id NOT IN (SELECT min(id) FROM t_5450_TEST_TABLE1 group by `value` );
Правда MySQL ругается: ERROR 1093 (HY000): You can't specify target table 't_5450_TEST_TABLE1' for update in FROM clause
В postgresql такая штука, к слову, работает. Можно сделать трюк со временной таблицей - но не факт, что это примут преподаватели. Вопрос к знающим: как можно в mysql такое сделать одним запросом?
http://sqlinfo.ru/forum/viewtopic.php?pid=31035#p31035
To, Svoboda
По поводу основ читайте мануал или найдите в яндексе любой самоучитель на русском. Как вы себе представляете изложение основ на форуме? Мы можем лишь ответить на конкретные вопросы, которые у вас возникнут при чтении справочной литературы.
Неактивен
deadka
огромное спасибо... еще бы разобраться теперь....смотрю в книгу и вижу фигу
Неактивен
Спрашивайте, что именно непонятно (ответ - ВСЕ не принимается ) - подскажем.
Неактивен
блин в принципе нормально все....так общие вопросы..я так понимаю в аксессе практиковаться не вариант?
Неактивен
Смотря для чего: чтобы изучать MySQL - конечно нет; чтобы изучить SQL - почему нет.
Неактивен
SELECT id,`value`*100/(SELECT sum(`value`) FROM t_5450_TEST_TABLE1) as p FROM t_5450_TEST_TABLE1 ORDER BY p DESC
это задание неправильно
5 Представить распределение записей по полю value с шагом 100
6 вывести code для всех записей из таблицы TEST_TABLE1 у которых value > 70
а помогите с этими тоже а
Неактивен
Svoboda написал:
SELECT id,`value`*100/(SELECT sum(`value`) FROM t_5450_TEST_TABLE1) as p FROM t_5450_TEST_TABLE1 ORDER BY p DESC
это задание неправильно
Почему?
Svoboda написал:
6 вывести code для всех записей из таблицы TEST_TABLE1 у которых value > 70
В TEST_TABLE1 нет поля code. Если речь идет о том, что таблицы связаны по id, то какой результат должен быть для записи "7 100 val7", не имеющей соответствия во второй таблице?
Про объединения можно посмотреть здесь: http://dev.mysql.com/doc/refman/5.5/en/join.html
Неактивен