你好我有我想要显示从每个部分各自的候选人只有第一个问题学生数据...显示问题
Q
显示问题
-1
A
回答
1
解决方案模仿SQL SERVER Row_Number()函数。谷歌MySQL的顺序点在正确的方向。
/*create temporary table t(can_id int, status varchar(20));
insert into t values
(001 , 'section 1 question 1'),
(001 , 'section 1 question 2'),
(001 , 'section 1 question 3'),
(001 , 'section 1 question 4'),
(001 , 'section 2 question 1'),
(001 , 'section 2 question 2'),
(001 , 'section 2 question 3'),
(001 , 'section 2 question 4'),
(001 , 'section 3 question 1'),
(001 , 'section 3 question 2'),
(001 , 'section 3 question 3'),
(002 , 'section 1 question 1'),
(002 , 'section 1 question 2'),
(002 , 'section 1 question 3'),
(002 , 'section 2 question 1'),
(002 , 'section 2 question 2'),
(002 , 'section 2 question 3'),
(002 , 'section 3 question 1'),
(002 , 'section 3 question 2'),
(002 , 'section 3 question 3'),
(002 , 'section 3 question 4');
*/
select s.tcanid as 'can.id', substring(s.tstatus,11,11) as Question
from
(
select t.can_id as tcanid, t.status as tstatus ,
@sno :=if(@previd = concat(t.can_id,substring(t.status,1,9)),@sno + 1,1) as canid
,@previd:=concat(t.can_id,substring(t.status,1,9)) prevcanid
from t,
(select @sno:= 0) as sn
,(select @Previd:= '') as p
) s
where s.canid <= 3
+0
您的查询与我的查询不太相同 - 请尝试将别名重新放入并更正where语句,它应该查看sno的别名 –
0
根据您的要求,你要为每一个部分的第一个3个问题,但你没有考虑部分在你的查询中。以下查询将完成这项工作。
SELECT data_set.*
FROM
(
SELECT temp.can_id
, temp.Section
, temp.Question
, ROW_NUMBER() OVER (PARTITION BY temp.can_id,temp.Section ORDER BY temp.can.id,temp.Section) as QUESTION_NO
FROM
(
SELECT can.id as can_id
, SUBSTRING(status,11,11) as Question
, SUBSTRING(status,1,9) as Section
FROM samp_dat
) temp
) data_set
WHERE
data_set.QUESTION_NO <=3
+0
虽然Mysql没有ROW_NUMBER()函数 - 正确的想法。 –
相关问题
- 1. 显示问题
- 2. JQuery显示问题?
- 3. PHP显示问题
- 4. UITextField显示问题
- 5. JQuery显示问题
- 6. 显示问题CSS
- 7. IE7:显示问题
- 8. 表显示问题
- 9. vb6显示问题
- 10. jQuery显示问题?
- 11. IE8显示问题
- 12. JLayeredPane显示问题
- 13. JButton显示问题
- 14. html显示问题
- 15. 显示问题datagrid
- 16. 安卓startactivity显示问题
- 17. 缩略图显示问题
- 18. 问题CSS显示页面
- 19. Zend_Form的显示组问题
- 20. MySQL和PHP显示问题?
- 21. 图像显示问题
- 22. 显示消息问题
- 23. 显示/隐藏SubMenu问题
- 24. 显示属性的问题
- 25. Java Swing显示问题
- 26. JQuery显示/隐藏问题
- 27. ASP.Net DataSet显示问题
- 28. 字体显示问题
- 29. Java字体显示问题
- 30. DownDownList问题显示类型
你能告诉我们你查询的结果,至少前10 – KaeL
我不会回答这个问题,因为努力需要使用字符串函数大大超过了你就必须努力操纵'status'列以发挥标准化您的表格,并有部分和问题ID号作为单独的列。 –
您的'SUBSTRING()'尝试将不起作用,因为数字的宽度是可变的。你将不得不使用'INSTR'和'SUBSTRING'的组合,这会变得非常快。 –