Tengo esta BD

Queria conseguir lo mismo que con esta consulta

Código MySQL :

SELECT sum(preguntas.mostrar) as num_preguntas, sum(usuario_respuestas.valor) as puntuacion, caracteristica_en, puntos FROM `usuario_respuestas` INNER JOIN `preguntas` ON usuario_respuestas.id_pregunta = preguntas.id_pregunta WHERE fecha=(select MAX(fecha) as fecha from usuario_respuestas WHERE usuario_respuestas.uid= uid AND usuario_respuestas.id_objetivo = '1') AND caracteristica_en IS NOT NULL AND usuario_respuestas.uid=uid AND usuario_respuestas.id_objetivo = '1' GROUP BY caracteristica_en



Pero para los uid distintos de 1. Osea por cada uid queria agrupadas por caracteristica_en pero cuyo tiempo sea el maximo

Tengo esto:

Código MySQL :

SELECT sum(preguntas.mostrar) as num_preguntas, sum(usuario_respuestas.valor) as puntuacion, caracteristica_en, puntos, uid,fecha FROM `usuario_respuestas` INNER JOIN `preguntas` ON usuario_respuestas.id_pregunta = preguntas.id_pregunta WHERE caracteristica_en IS NOT NULL AND usuario_respuestas.uid=uid AND usuario_respuestas.id_objetivo = '1' GROUP BY uid, caracteristica_en, fecha



pero queria que no me diese por cada uid los que la fecha sea maxima.

Tb si estuviesen los uid con fecha maxima y agrupados por caracteristica.

Yo de bases de datos no voy muy sobrado, consegui llegar hasta aquí pero lo unico q se me ocurre es hacer un for y hacer consulta por consulta e ir sumando, pero me gustaria saber si hay una manera mas pro de hacerla. Gracias.

Código MySQL :

-- phpMyAdmin SQL Dump
-- version 3.4.5
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 11-11-2011 a las 21:56:15
-- Versión del servidor: 5.5.16
-- Versión de PHP: 5.3.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de datos: `fb_test`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `preguntas`
--

CREATE TABLE IF NOT EXISTS `preguntas` (
  `id_pregunta` int(11) NOT NULL,
  `en` text COLLATE latin1_spanish_ci,
  `caracteristica_en` text COLLATE latin1_spanish_ci,
  `puntos` int(11) DEFAULT NULL,
  `grupo` int(11) NOT NULL,
  `mostrar` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id_pregunta`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;

--
-- Volcado de datos para la tabla `preguntas`
--

INSERT INTO `preguntas` (`id_pregunta`, `en`, `caracteristica_en`, `puntos`, `grupo`, `mostrar`) VALUES
(0, 'texto 0', 'c1', 4, 0, 1),
(1, 'texto 1', 'c1', 4, 1, 1),
(2, 'texto 2', 'c1', 4, 2, 1),
(3, 'texto 3', 'c2', 4, 0, 1),
(4, 'texto 4', 'c2', 4, 1, 1),
(5, 'texto 5', 'c2', 4, 2, 1),
(6, 'texto 6', 'c3', 4, 0, 1),
(7, 'texto 7', 'c3', 4, 1, 1),
(8, 'texto 8', 'c3', 4, 2, 1);

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `usuario_respuestas`
--

CREATE TABLE IF NOT EXISTS `usuario_respuestas` (
  `id_respuesta` int(11) NOT NULL AUTO_INCREMENT,
  `uid` int(11) NOT NULL,
  `id_objetivo` int(11) NOT NULL,
  `id_pregunta` int(11) NOT NULL,
  `valor` int(11) NOT NULL DEFAULT '0',
  `fecha` int(20) NOT NULL,
  PRIMARY KEY (`id_respuesta`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2051 ;

--
-- Volcado de datos para la tabla `usuario_respuestas`
--

INSERT INTO `usuario_respuestas` (`id_respuesta`, `uid`, `id_objetivo`, `id_pregunta`, `valor`, `fecha`) VALUES
(2012, 2, 1, 0, 1, 1350000000),
(2013, 2, 1, 1, 1, 1350000000),
(2014, 2, 1, 2, 1, 1350000000),
(2015, 3, 1, 3, 1, 1450000000),
(2016, 3, 1, 4, 1, 1450000000),
(2017, 3, 1, 5, 1, 1450000000),
(2018, 4, 1, 6, 1, 1550000000),
(2019, 4, 1, 7, 1, 1550000000),
(2020, 4, 1, 8, 1, 1550000000),
(2021, 2, 1, 0, 3, 1950000000),
(2022, 2, 1, 1, 3, 1950000000),
(2023, 2, 1, 2, 3, 1950000000),
(2024, 3, 1, 3, 3, 1750000000),
(2025, 2, 1, 3, 3, 1950000000),
(2026, 3, 1, 4, 3, 1750000000),
(2027, 2, 1, 4, 3, 1950000000),
(2028, 3, 1, 5, 3, 1750000000),
(2029, 2, 1, 5, 3, 1950000000),
(2030, 4, 1, 6, 3, 1500000000),
(2031, 4, 1, 7, 3, 1500000000),
(2032, 4, 1, 8, 3, 1500000000),
(2033, 1, 1, 0, 1, 1100000000),
(2034, 1, 1, 1, 1, 1100000000),
(2035, 1, 1, 2, 1, 1100000000),
(2036, 1, 1, 3, 1, 1100000000),
(2037, 1, 1, 4, 1, 1100000000),
(2038, 1, 1, 5, 1, 1100000000),
(2039, 1, 1, 6, 1, 1100000000),
(2040, 1, 1, 7, 1, 1100000000),
(2041, 1, 1, 8, 1, 1100000000),
(2042, 1, 1, 0, 5, 1400000000),
(2043, 1, 1, 1, 5, 1400000000),
(2044, 1, 1, 2, 5, 1400000000),
(2045, 1, 1, 3, 5, 1400000000),
(2046, 1, 1, 4, 5, 1400000000),
(2047, 1, 1, 5, 5, 1400000000),
(2048, 1, 1, 6, 5, 1400000000),
(2049, 1, 1, 7, 5, 1400000000),
(2050, 1, 1, 8, 5, 1400000000);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;