как подсчитать строки при выборке из таблицы?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



как подсчитать строки при выборке из таблицы?... Expand / Collapse
Автор
Сообщение
09.02.2006 12:23
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 10.02.2006 11:44
Сообщ.: 6, Visits: 67
Есть табличка, выборка из которой дает такие вот строчки, два столбца:
id Время
1 2006-02-08 14:47:20
3 2006-02-08 15:48:30
17 2006-02-09 12:37:01
159 2006-02-09 08:17:30
229 2006-02-09 08:17:20
359 2006-02-09 09:11:30
370 2006-02-09 11:18:40
452 2006-02-09 17:10:50
.......
и так далее, очень много строк. Вывожу я их так:
my $sth = $dbh->prepare( "SELECT $col1,$col2 FROM table_log");
while ( my @row = $sth->fetchrow_array( ) ){print Tr( td(\@row));}

Помогите пожалуйста сделать следующее, чтобы вывод из таблички был такого вида, два столбца:

Дата Кол-во записей
2006-02-08 2
2006-02-09 6

Тоесть, чтобы за каждое число посчиталось кол-во записей. Я в перле еще не совсем разобрался, подскажите пожалуйста, как такое можно запрограммировать? Огромное всем спасибо!
Сообщ. #890398
09.02.2006 13:16
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Perl здесь ни при чем. Тебе нужно написать slq запрос возвращающий нужные данные. Конкретно тебе нужно сделать группировку по полю с датой, отрезав от нее время.
Примерно так: SELECT dateField, COUNT(*) FROM table_log GROUP BY dateField
Это неполный запрос так как конкретная реализация "обрезания" даты зависит от используемой базы данных.
Сообщ. #890404
09.02.2006 15:28
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 10.02.2006 11:44
Сообщ.: 6, Visits: 67
БД mysql,
`dateField` datetime NOT NULL default '0000-00-00 00:00:00'.
подскажите, как правильно обрезать, GROUP BY left(dateField,10) будет правильно?
Сообщ. #890417
09.02.2006 16:13
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Должно прокатить. То есть весь запрос будет выглядеть так
SELECT left(dateField,10), COUNT(*) FROM table_log GROUP BY left(dateField,10)
Сообщ. #890423
10.02.2006 10:08
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 10.02.2006 11:44
Сообщ.: 6, Visits: 67
спасибо, рботает!
Сообщ. #890454
10.02.2006 11:51
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 10.02.2006 11:44
Сообщ.: 6, Visits: 67
[quote="bazile"]Должно прокатить. То есть весь запрос будет выглядеть так
SELECT left(dateField,10), COUNT(*) FROM table_log GROUP BY left(dateField,10)[/quote]

Если можно, еще подскажите пожалуйста, как запрограммировать представление 3х таблиц (по два столбца каждая) в одной таблице (с одним столбцом). Как бы три выборки с разными критериями на одной страничке. Здесь как я понимаю уже sql не причем...
Чтобы получилось при выводе на странице примерно вот так:

столбец1 столбец2 столбец3

2006-02-08 2 2006-02-08 10 2006-02-08 5
2006-02-09 6 2006-02-09 20 2006-02-09 0
2006-02-10 3 2006-02-09 5 2006-02-10 0
... ... ...

Я бы мог просто сделать на одной странице последовательный вывод 3х выборок, но читать когда 3 столбца и в каждом по два гораздо приятнее :)
Подскажите пожалуйста если знаете.
Сообщ. #890475
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 8:53