|
|
|
| Есть таблица table1
id fio sum date
1 qw 10 10.03.2008
2 qw1 8 11.03.2008
3 qw 5 12.03.2008
4 qw1 15 12.03.2008
|
Мне нужно подсчитать sum у каждого не повторяющегося fio. Т.е. получить данные ввиде такого
qw = 15
qw1 = 23
Подскажите пож. запрос.. | |
|
|
|
|
|
|
|
для: Roo$
(28.05.2008 в 23:04)
| | select sum(sum)
from table1
group by fio | |
|
|
|
|
|
|
|
для: Roo$
(28.05.2008 в 23:04)
| |
SELECT fio, sum(`sum`)
FROM table1
GROUP BY fio
|
| |
|
|
|
|
|
|
|
для: Trianon
(28.05.2008 в 23:22)
| | при этом поле sum должно быть целого типа?? А если допустим оно у мня типа string?? | |
|
|
|
|
|
|
|
для: Roo$
(29.05.2008 в 00:37)
| | Проверьте. Однако следует задать другой вопрос: а зачем Вы задаёте строковой тип полю, в котором будут только числа?
Правда именно "string" в MySQL нет. | |
|
|
|
|
|
|
|
для: Roo$
(29.05.2008 в 00:37)
| | А что Вы понимаете под словами "подсчитать sum" применительно к string?
Кстати, такой SQL-тип мне неизвестен.
Если оно у Вас string - вероятнее всего значит, что считать Вам нужно отнюдь не сумму.
Или как минимум - не сумму значений этого поля | |
|
|
|
|
|
|
|
для: Trianon
(29.05.2008 в 01:09)
| | Под string я имел ввиду тип char.
Дапустим у мня таблица такого вида
id fio sum date
1 qw 2196,00 10.03.2008
2 qw1 2596,00 11.03.2008
3 qw 2196,02 12.03.2008
4 qw1 2196,70 12.03.2008
|
qw = 4392,02
qw1 = 4792,7
И нужно по прежнему получить сумму поля sum... но тип у этого поля char, т.к. мне проще записать такое число именно в этот тип чем в float. | |
|
|
|
|
|
|
|
для: Roo$
(29.05.2008 в 11:12)
| | а ты пробовал sum по этому полю сделать? в чём собственно проблема? | |
|
|
|
|
|
|
|
для: ronin80
(29.05.2008 в 17:28)
| | поле-то нечисловое. | |
|
|
|
|
|
|
|
для: Roo$
(29.05.2008 в 11:12)
| | что ж ... вот Вам изврат.
SELECT fio, SUM(CAST(REPLACE(`sum`, ',', '.') AS DECIMAL)) AS res
FROM table1
GROUP BY fio
|
PS. Советую всё же выбрать правильные типы - как для суммы, так и для даты.
В БД данные должны лежать в том виде, в котором это удобно БД.
А вовсе не пользователю. | |
|
|
|
|
|
|
|
для: Trianon
(29.05.2008 в 17:54)
| | воо.. это то что мне и нужно ))
Большое СПАСИБО за помощь | |
|
|
|
|
|
|
|
для: Roo$
(29.05.2008 в 20:35)
| | > воо.. это то что мне и нужно ))
Я извиняюсь, но это Вам не нужно, честно. Вы на чём экономите? На времени или на занимаемом в на диске месте? В обоих случаях Вы проигрываете. Чем дальше - тем больше. | |
|
|
|
|
|
|
|
для: Trianon
(29.05.2008 в 17:54)
| | . | |
|
|
|
|
|
|
|
для: Trianon
(29.05.2008 в 17:54)
| | Шоб не создавать новую темку.. может подскажите.. как можно подсчитать кол-во сгруппированных строк??
Т.е. если брать мой пример.. то вывести результат типо такого: "из 4-х записей сгруппированно 2 строки"
делаю так.. но выводит кол-во не сгруппированных строк а хз какаих (ведать удовлетвор. условию where)
SELECT sum(sum), count(fio), fio FROM table1 where (date > date1) and (date < date2) GROUP BY fio
|
Итог должен быть такой : 2 - строки сгруппированны
qw
qw1 | |
|
|
|
|
|
|
|
для: Roo$
(29.05.2008 в 21:17)
| | Если честно - не понял вопроса. | |
|
|
|
|
|
|
|
для: Trianon
(29.05.2008 в 21:52)
| | Другими словами..мне нужно подсчитать колличество не повторяющихся записей (по полю fio) в таблице. | |
|
|
|
|
|
|
|
для: Roo$
(29.05.2008 в 22:04)
| | mysql_num_rows() чтоли? | |
|
|
|
|
|
|
|
для: Trianon
(29.05.2008 в 22:06)
| | ммм.. не совсем то.. Смотри, есть таблица в которой ведется учет обо всех зарегенных пользователей (ников). Так вот мне нужно с этой таблицы вывести все записи, т.е. ники, которые не повторяются.. Дапустим
qw
qwq1
qwqw
qwqw
qwq1
Мне нужно вытащить
qw
qwq1
qwqw | |
|
|
|
|
|
|
|
для: Roo$
(29.05.2008 в 22:19)
| | >ммм.. не совсем то.. Смотри, есть таблица в которой ведется учет обо всех зарегенных пользователей (ников).
В такой таблице поле с названием ника будет уникальным.
Впрочем, мне уже пофиг...
SELECT COUNT(DISTINCT fio) FROM table1;
|
| |
|
|
|