✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Как составить список самых популярных сообщений за год с помощью SQL?

17

В этом посте мы узнаем, как использовать SQL список самых популярных сообщений (в соответствии с количеством комментариев для каждого сообщения). В этих сообщениях мы получим базовую статистику по сообщениям в 2016 году, а также узнаем 10 лучших сообщений, отсортированных по результатам голосования.

Общее количество сообщений

На основе этого SQL :

SELECT   count(1) FROM   wp_posts WHERE   post_type = "post" and   post_status = "publish" and   date_format(post_date_gmt, "%Y") = "2016"

Мы знаем, что в 2016 году было опубликовано 245 постов.

+----------+ | count(1) | +----------+ |      245 | +----------+ 1 row in set (0.01 sec)

Топ самых обсуждаемых постов

И на основе SQL у нас есть самые обсуждаемые посты за этот год, т.е. 2016.

SELECT   post_name, post_title FROM   wp_posts WHERE   post_type = 'post' and   post_status = 'publish' and   date_format(post_date_gmt, "%Y") = '2016' ORDER BY  comment_count DESC LIMIT 10

Мы знаем 10 самых обсуждаемых (самых популярных) сообщений в 2016 году. Измените ограничение 10, чтобы разрешить показ большего количества сообщений, например, ограничение 20.

+--------------------------------------------------------------------------------+------------------------------------------------------------------------+ | post_name                                                                      | post_title                                                             | +--------------------------------------------------------------------------------+------------------------------------------------------------------------+ | cc-coding-exercise-convert-a-number-to-hexadecimal                             | C/C++ Coding Exercise - Convert a Number to Hexadecimal?               | | dynamic-programming-how-many-ways-to-connect-the-pipes                         | Dynamic Programming - How many ways to connect the pipes?              | | when-xx-evaluates-to-false-in-cc                                               | When x==x Evaluates to FALSE in C/C++?                                 | | how-to-compute-sum-of-two-integers-without-plus-and-minus-operators            | How to Compute Sum of Two Integers without Plus+ and Minus- Operators? | | how-to-find-intersection-of-two-arrays-in-c                                    | How to Find Intersection of Two Arrays in C++?                         | | bit-manipulation-how-to-set-all-bits-between-i-and-j-in-n-equal-to-m-cplusplus | Bit Manipulation: How to Set All Bits Between i and j in N equal to M? | | how-to-check-valid-anagram-in-cc                                               | How to Check Valid Anagram in C/C++?                                   | | c-coding-exercise-number-of-1-bits-revisited                                   | C++ Coding Exercise - Number of 1 Bits (Revisited)                     | | dynamic-programming-integer-break                                              | Dynamic Programming - Integer Break                                    | | cc-coding-exercise-find-the-duplicate-number                                   | C/C++ Coding Exercise - Find the Duplicate Number                      | +--------------------------------------------------------------------------------+------------------------------------------------------------------------+ 10 rows in set (0.01 sec)

Это (на момент написания):

  1. Упражнение по программированию на C/C++. Преобразование числа в шестнадцатеричное?
  2. Динамическое программирование – Сколько способов соединения труб?
  3. Когда x==x оценивается как FALSE в C/C++?
  4. Как вычислить сумму двух целых чисел без операторов плюс+ и минус-?
  5. Как найти пересечение двух массивов в C++?
  6. Манипуляции с битами: как установить все биты между i и j в N равными M?
  7. Как проверить правильность анаграммы в C/C++?
  8. Упражнение по программированию на C++ — количество битов 1 (повторное посещение)
  9. Динамическое программирование — целочисленный разрыв
  10. Упражнение по написанию кода на C/C++. Найдите повторяющийся номер

Сообщения с наибольшим количеством голосов через SQL

Теперь мы можем объединить статистику голосования из плагина GD Star Rating и получить еще один интересный рейтинг.

Это дает следующие 10 самых популярных постов года:

+------+----------------------------------------------------------------------------+-------------+---------------+------------+ | ID   | title                                                                      | total_votes | visitor_votes | user_votes | +------+----------------------------------------------------------------------------+-------------+---------------+------------+ | 4793 | When x==x Evaluates to FALSE in C/C++?                                     |       105.0 |          95.0 |       10.0 | | 4679 | How to Find the Maximum of Two Integers without Using Comparison Operator? |        81.0 |          81.0 |        0.0 | | 4191 | How to Delete a Node from a Binary Search Tree?                            |        68.0 |          58.0 |       10.0 | | 4380 | C++ Coding Exercise: How to Check if a Large Integer is divisible by 11?   |        67.0 |          57.0 |       10.0 | | 4329 | Microsoft Interview Question - Get the Area of the Triangle                |        66.0 |          66.0 |        0.0 | | 4740 | PPAP in C++ and Javascript for Beginner                                    |        62.0 |          52.0 |       10.0 | | 4166 | How to Invert a Binary Tree in C/C++?                                      |        48.0 |          48.0 |        0.0 | | 4176 | How to Reverse Bits for 32-bit Unsigned Integer in C/C++?                  |        46.0 |          46.0 |        0.0 | | 4178 | C++ Coding Exercise - How to Find First Missing Number?                    |        40.0 |          40.0 |        0.0 | | 4227 | Dynamic Programming - Integer Break                                        |        31.0 |          31.0 |        0.0 | +------+----------------------------------------------------------------------------+-------------+---------------+------------+ 10 rows in set (0.01 sec)
  1. Когда x==x оценивается как FALSE в C/C++?
  2. Как найти максимум двух целых чисел без использования оператора сравнения?
  3. Как удалить узел из двоичного дерева поиска?
  4. Упражнение по программированию на C++: как проверить, делится ли большое целое число на 11?
  5. Вопрос для интервью в Microsoft — получите площадь треугольника
  6. PPAP на C++ и Javascript для начинающих
  7. Как инвертировать двоичное дерево в C/C++?
  8. Как перевернуть биты для 32-битного целого числа без знака в C/C++?
  9. Упражнение по программированию на C++ — как найти первое пропущенное число?
  10. Динамическое программирование — целочисленный разрыв

Конечно, вы можете изменить оба приведенных выше SQL-запроса так, чтобы они давали 12 сообщений, т. е. по одному лучшему за каждый месяц. Вам просто нужно сгруппировать по месяцам следующим образом:

GROUP BY date_format(`p`.post_date_gmt, "%M")

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

SQL

Источник записи: helloacm.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее