|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Сен 30, 2003 18:59:56 Люди, подскажите мне оператор, чтобы выдал следующее: в базе данных имею колонку rgid, значения в колонке типа INTEGER NOT NULL. Могут повторяться неопредленное количество раз, например (в виде ряда): 1 1 1 2 3 3 4 4 4 4 4 4 4 5 6 7 7 8 9 10 11 и т.п. Мне нужно подсчитать количество встречаемости 1, 2, 3 и т.п. Т.е. для данного случая: 1 - 3 раза 2 - 1 раз 3 - 2 раза 4 - 7 раз и т.п. Плиз, быстрее :( |
|
|
Дата: Сен 30, 2003 19:20:33 одним оператором вроде никак можешь сделать так: select distinct(rgid) from table; потом бежищь по каждому вхождению и выполняешь : select count(rgid) where rgid=1 from table |
|
|
Дата: Сен 30, 2003 19:51:58 rst А UNION? |
|
|
Дата: Сен 30, 2003 20:10:30 volodya А UNION? Насколько я помню, MySQL не поддерживает UNION. |
|
|
Дата: Сен 30, 2003 20:24:08 Т.е. никак. Да? |
|
|
Дата: Сен 30, 2003 20:24:21 Aquila Поддерживает, начиная с версии 4.0 |
|
|
Дата: Сен 30, 2003 20:27:21 UNION is implemented in MySQL 4.0.0. - верно. Буду разбираться. |
|
|
Дата: Сен 30, 2003 20:39:00 · Поправил: Aquila Quantum Поддерживает, начиная с версии 4.0 А, это да. Но ОБС говорит, что она ещё, вроде, сырая и проблемы какие-то. |
|
|
Дата: Сен 30, 2003 20:44:21 volodya Всё гениальное просто: SELECT rgid, COUNT(rgid) FROM myTbl GROUP BY rgid; _70689162__test.txt |
|
|
Дата: Сен 30, 2003 21:08:09 В моей таблице 7506 значений такого типа, так что не все так просто :( |
|
|
Дата: Сен 30, 2003 21:25:09 Aquila IMHO, использование всяких UNION - признак плохо продуманного дизайна БД. Поэтому я ими не пользуюсь. volodya Не понял. При чём здесь кол-во значений? Объясни, плиз. |
|
|
Дата: Сен 30, 2003 21:30:04 Quantum Слушай, а как вывести только те, у которых БОЛЬШЕ, чем, скажем, 4. Что-то с IF? |
|
|
Дата: Сен 30, 2003 22:30:56 · Поправил: Quantum Теоретически можно так: SELECT rgid,@a:=COUNT(*) FROM Test WHERE @a>4 GROUP BY rgidВ MySQL обещают скоро включить поддержку подобных запросов. На данный момент могу только посоветовать следующий выход: CREATE TABLE tmp TYPE=HEAP SELECT rgid,COUNT(*) AS cnt FROM Test GROUP BY rgid; SELECT rgid, cnt FROM tmp WHERE cnt > 4; DROP TABLE tmp; |
|
|
Дата: Сен 30, 2003 22:44:08 Quantum Значит, только через времянку... ОК. Спасибо тебе, родной. Ты как всегда крепко выручаешь мою задницу. Спасибо. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.080 |