✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

¿Cómo enumerar las publicaciones más votadas en un año usando SQL?

30

En esta publicación, aprendemos cómo usar SQL para enumerar las publicaciones más populares (según la cantidad de comentarios para cada publicación). En estas publicaciones, obtendremos algunas estadísticas básicas para las publicaciones en 2016 y también, aprenderemos las 10 publicaciones principales ordenadas por votaciones.

Número total de publicaciones

Basado en este SQL :

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

Sabemos que hay 245 posts publicados en 2016.

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

Principales publicaciones más discutidas

Y basándonos en el SQL, tenemos las publicaciones más discutidas para este año, es decir, 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

Conocemos las 10 publicaciones más discutidas (como las más populares) en 2016. Cambie el límite de 10 para permitir que se muestren más publicaciones, por ejemplo, el límite de 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)

Estos son (al momento de escribir):

  1. Ejercicio de codificación C/C++: ¿convertir un número a hexadecimal?
  2. Programación Dinámica – ¿Cuántas maneras de conectar las tuberías?
  3. Cuando x==x se evalúa como FALSO en C/C++?
  4. ¿Cómo calcular la suma de dos enteros sin los operadores más+ y menos-?
  5. ¿Cómo encontrar la intersección de dos matrices en C++?
  6. Manipulación de bits: ¿Cómo establecer todos los bits entre i y j en N igual a M?
  7. ¿Cómo comprobar un anagrama válido en C/C++?
  8. Ejercicio de codificación C++: número de 1 bits (revisado)
  9. Programación Dinámica – Ruptura de Enteros
  10. Ejercicio de codificación C/C++: encuentre el número duplicado

Publicaciones más votadas a través de SQL

Ahora, podemos combinar las estadísticas de votación de GD Star Rating Plugin y obtener otras clasificaciones interesantes.

SELECT 
   `p`.`ID`, 
   `p`.`post_title` as `title`, 
   `visitor_votes` + `user_votes` as `total_votes`, 
   `visitor_votes`, 
   `user_votes`  
FROM  
  `wp_gdsr_data_article` as `da` 
INNER JOIN 
  `wp_posts` as `p` ON `da`.`post_id` = `p`.`ID` 
WHERE
  `p`.post_type = 'post' and 
  `p`.post_status = 'publish' and  
  date_format(`p`.`post_date_gmt`, "%Y") = '2016'
HAVING
  `total_votes` > 0
ORDER BY
  `total_votes` desc 
LIMIT 10

Esto da las siguientes 10 publicaciones más votadas del año:

+------+----------------------------------------------------------------------------+-------------+---------------+------------+
| 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. Cuando x==x se evalúa como FALSO en C/C++?
  2. ¿Cómo encontrar el máximo de dos enteros sin usar el operador de comparación?
  3. ¿Cómo eliminar un nodo de un árbol de búsqueda binario?
  4. Ejercicio de codificación C++: ¿Cómo verificar si un entero grande es divisible por 11?
  5. Pregunta de la entrevista de Microsoft: obtenga el área del triángulo
  6. PPAP en C++ y Javascript para principiantes
  7. ¿Cómo invertir un árbol binario en C/C++?
  8. ¿Cómo invertir bits para enteros sin signo de 32 bits en C/C++?
  9. Ejercicio de codificación C++: ¿cómo encontrar el primer número que falta?
  10. Programación Dinámica – Ruptura de Enteros

Por supuesto, puede modificar las dos consultas SQL anteriores para que proporcione 12 publicaciones, es decir, una mejor para cada mes. Solo necesita agrupar por mes de esta manera:

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

Y, también, podría crear una página PHP que brinde las tablas de clasificación más actualizadas para las publicaciones, pero lo que se muestra aquí es estático, es decir, la tabla de clasificación se genera tal como está hoy.

sql

Fuente de grabación: helloacm.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More