Intereting Posts
Как вычислить сумму движения с сбросом на основе условия в SQL-терадате? Уникальное ограничение на один столбец с исключением строки с одинаковыми значениями в другой Запросы, которые неявные соединения SQL не могут сделать? В чем смысл GO-инструкции в TSQL Обработка ошибок RODBC для sqlQuery Найдите число, которое находится между двумя значениями, и поле возврата, соответствующее более низкому значению Шифровать первый поисковый запрос в MySQL? Разница между SET autocommit = 1 и START TRANSACTION в mysql (я что-то пропустил?) Добавление новых полей и создание отдельной таблицы Доступ к форматам дат VBA и SQL Вы не можете указать таблицу назначения для обновления в предложении FROM Группа по псевдониму (Oracle) Используя LIMIT внутри GROUP BY, чтобы получить N результатов для каждой группы? Ошибка SQL: ORA-00933: команда SQL неправильно завершена показывать дубликаты строк в доступе

как группировать и подсчитывать с помощью MySQL

У меня есть данные, которые выглядят так:

 ID post_author post_title guid
 3309 21 Если кто-то еще не на SQL 2008 ждет SQL 2008 R2, так как он близок к выпуску?  http://sql.stackexchange.com/questions/379/should-somebody-not-yet-on-sql-2008-wait-for-sql-2008-r2-since-its-near-release
 1695 429 Как мы вежливо отказываемся от хорошего совета от бабушки?  http://moms4mom.stackexchange.com/questions/1208/how-do-we-politely-decline-well-meaning-advice-from-the-grandmother
 556 173 Книги о том, как стать великим папой http://moms4mom.stackexchange.com/questions/1042/books-on-how-to-be-a-great-dad
 160 30 Создание кулачка для хоккея с шайбой http://photo.stackexchange.com/questions/8/building-an-ice-hockey-net-cam
 159 30 Общая коммерческая форма выпуска фотографий http://photo.stackexchange.com/questions/4/generic-commercial-photo-release-form

Мне нужно создать запрос, который группирует данные по части поля GUID (корневой URL-адрес) и подсчитывает POST_AUTHOR для каждого.

Результат, который я ищу, будет следующим:

 Количество сайтов авторов http://sql.stackexchange.com 1 http://moms4mom.stackexchange.com 2 http://photo.stackexchange.com 2 

Я был бы признателен, если кто-нибудь поможет мне построить sql.

SELECT COUNT(POST_AUTHOR) AS AUTHOR_COUNT, GUID FROM TABLE_NAME GROUP BY GUID 

Возможно построить такой запрос, но он не будет оптимизирован.

Вы должны добавить столбец в свою таблицу, который будет иметь идентификатор сайта. Затем добавьте новую таблицу, которая будет иметь подготовленные данные для сайта: домен, путь, ресурс, будь то http или https и т. Д.

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

Напишите SQL FUNCTION – вызовите его, например, guid_extract (guid), который извлекает соответствующую информацию, затем вы можете добавить ее в столбец в выбранном ::

 SELECT stuff, otherstuff, guid_extract(guid) as site ... GROUP BY site; 

Проблема заключается в том, как извлечь корневую часть URL-адреса. Если мы можем быть уверены, что каждый URL будет иметь по крайней мере три слэша, это будет работать, используя substring_index

 select substring_index(guid,'/',3) as site, count(id) as authors from table group by substring_index(guid,'/',3) 

Конечно, если вы добавите дополнительный столбец с сайтом только во время вставки, все будет быстрее, чище и безопаснее (вам не придется усложнять запрос для обработки команд только двумя косыми чертами)