美好的一天
我正在尝试对重复值进行编号。它在普通查询中很容易使用,但我在视图中需要它。
+------+--------+--------+
| Code | Alpha | ISO |
+------+--------+--------+
| B1123| A | AU |
| B2343| C | AU |
| C6678| A | AU |
| D8980| B | AU |
| D7789| A | AU |
+------+--------+--------+
尝试编号Alpha列结果=
+------+--------+--------+-------+
| Code | Alpha | ISO | Num |
+------+--------+--------+-------+
| B1123| A | AU | 1 |
| B2343| C | AU | 1 |
| C6678| A | AU | 2 |
| D8980| B | AU | 1 |
| D7789| A | AU | 3 |
+------+--------+--------+-------+
使用:
CREATE VIEW `Nr` AS
set @row_num = 0;
SELECT @row_num := @row_num + 1 as row_number,code,Alpha,iso
FROM MyDatabase
ORDER BY Alpha;
但是无法创建视图无法使用SET。
我也尝试了count()函数,但它也不起作用。
我还能做些什么才能在视图中获得带编号的列。
由于
阮
答案 0 :(得分:1)
假设您有一个ID列(或任何唯一列),您可以在相关子查询中使用它来使用聚合函数计数查找序列号:
select code,
alpha,
iso,
(
select count(*)
from mydatabase t2
where t1.alpha = t2.alpha
and t2.id <= t1.id
) as num
from mydatabase t1;
答案 1 :(得分:0)
请考虑以下事项:
var randomNumber = Math.floor(Math.random() * 30) + 1;
console.log(randomNumber);
var setOfNums = [1,2,5,10,50];
setOfNums=setOfNums.sort(function(a,b){
return b-a;
});
subset_sum(setOfNums,randomNumber);
function subset_sum(numbers, target, partial){
partial = partial || [];
s = partial.reduce(function(contor,elem){
return contor+elem;
},0);
if(s == target){
partial=partial.sort(function(a,b){
return a-b;
});
console.log("sum"+JSON.stringify(partial)+"="+ target);
}
if(s >= target)
return;
if(partial.length>numbers.length)
return;
numbers.forEach(function(number,index){
n = numbers[index];
subset_sum(numbers, target, partial.concat(n));
});
}