GVKun编程网logo

如果列值相同,则仅选择具有最高id值的行(如果列值相同,则仅选择具有最高id值的行数)

3

如果您对如果列值相同,则仅选择具有最高id值的行感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于如果列值相同,则仅选择具有最高id值的行的详细内容,我们还将为您解答如果列值相

如果您对如果列值相同,则仅选择具有最高id值的行感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于如果列值相同,则仅选择具有最高id值的行的详细内容,我们还将为您解答如果列值相同,则仅选择具有最高id值的行数的相关问题,并且为您提供关于Django仅选择具有重复字段值的行、linux – Bash输出具有最高值的行、php – 抓取特定列中具有最高值的行、PHP-选择具有最小时间值的字段信息的有价值信息。

本文目录一览:

如果列值相同,则仅选择具有最高id值的行(如果列值相同,则仅选择具有最高id值的行数)

如果列值相同,则仅选择具有最高id值的行(如果列值相同,则仅选择具有最高id值的行数)

如何从表中选择所有内容,并且如果列的值相同,name则仅选择具有id最大值的行,因此,如果有这样的表:

  id name   age country ---+------+---+-------    1  bob    24  UK   2  john   48  USA   3  janet  72  USSR   4  bob    96  Ukraine

它只会选择ID最高的“ bob”,因此结果将返回:

  id name   age country ---+------+---+-------    2  john   48  USA   3  janet  72  USSR   4  bob    96  Ukraine

谢谢你。

答案1

小编典典

您可以使用子查询来计算每个名称的最大ID,然后返回与该子查询返回的ID匹配的所有行:

SELECT *FROM PeopleWHERE id IN (SELECT MAX(id) FROM People GROUP BY Name)

请看这里的小提琴。

Django仅选择具有重复字段值的行

Django仅选择具有重复字段值的行

如何解决Django仅选择具有重复字段值的行?

尝试:

from django.db.models import Count
Literal.objects.values(''name'')
               .annotate(Count(''id'')) 
               .order_by()
               .filter(id__count__gt=1)

这与使用Django所获得的效果非常接近。问题在于这将返回一个ValuesQuerySetwith namecount。但是,你可以QuerySet通过将其反馈给另一个查询来使用它来构造一个常规:

dupes = Literal.objects.values(''name'')
                       .annotate(Count(''id''))
                       .order_by()
                       .filter(id__count__gt=1)
Literal.objects.filter(name__in=[item[''name''] for item in dupes])

解决方法

假设我们在Django中有一个定义如下的模型:

class Literal:
    name = models.CharField(...)
    ...

名称字段不是唯一的,因此可以具有重复的值。我需要完成以下任务:从模型中选择具有至少一个name字段重复值的所有行。

我知道如何使用普通的SQL来做到这一点(可能不是最好的解决方案):

select * from literal where name IN (
    select name from literal group by name having count((name)) > 1
);

因此,可以使用django ORM选择它吗?还是更好的SQL解决方案?

linux – Bash输出具有最高值的行

linux – Bash输出具有最高值的行

我的问题非常像 this one,但有一点不同;我希望输出在第3个选项卡上得分最高的行.我的数据如下:

1.gui  Qxx  16
2.gui  Qxy  23
3.guT  QWS  11

我想得到这个:

1.gui  Qxy  23
3.guT  QWS  11

我用了:

cat file.f | uniq | cut -d" " -f3 | sort | uniq -d >>out.f

但没有得到我想要的东西!?

解决方法

排序:

$sort -rk3 file             # Sort on column 3,display all results

2.gui  Qxy  23
1.gui  Qxx  16
3.guT  QWS  11

$sort -rk3 file | head -2   # Sort on column 3,filter number of results

2.gui  Qxy  23
1.gui  Qxx  16

$sort -rk3 file | uniq      # Sort on column 3,on display unique results 

2.gui  Qxy  23
1.gui  Qxx  16
3.guT  QWS  11

-r反向排序,最高的第一个.

-k3在第3列排序.

如果你只想显示第3列大于某个值(即15)的行,那么使用awk尝试:

awk '$3>15' file | sort -rk3  # display line where column 3 > 15 and sort

2.gui  Qxy  23
1.gui  Qxx  16

php – 抓取特定列中具有最高值的行

php – 抓取特定列中具有最高值的行

我有一个简单的表,存储与下载绑定的唯一ID.我要做的是生成创建的最新ID的CSV.每次生成密钥时(一次只能有1到100个密钥),UNIX时间戳与这些密钥一起存储.

我生成的CSV文件很好,但我无法使MAX功能正常工作.我的报告生成器如下:

// output headers so that the file is downloaded rather than displayed
header('Content-Type: text/csv; charset=utf-8');
header('Content-disposition: attachment; filename=codes.csv');

// create a file pointer connected to the output stream
$output = fopen('PHP://output', 'w');

// output the column headings
fputcsv($output, array('Unique Codes'));

// fetch the data
/** database username and pass removed **/
$rows = MysqL_query('SELECT uniqueid FROM downloadkeys');

// loop over the rows, outputting them
while ($row = MysqL_fetch_assoc($rows)) fputcsv($output, $row);

解决方法:

select uniqueid 
  from downloadkeys
 where creationTime = ( select max(creationTime) 
                          from downloadkeys )

或者如果你喜欢加入

select uniqueid 
  from downloadkeys
 inner
  join ( select max(creationTime) maxCreationTime
           from downloadkeys ) dk
    on creationTime = dk.maxCreationTime

PHP-选择具有最小时间值的字段信息

PHP-选择具有最小时间值的字段信息

大家好,我想我做对了,但结果却一直是错误的.我试图简单地找到带有最小时间的条目的ID,但是我没有得到该条目.

$qryuserscount1="SELECT id,min(entry_time) FROM scrusersonline WHERE topic_id='$topic_id'";
$userscount1=MysqL_query($qryuserscount1);
while ($row2 = MysqL_fetch_assoc($userscount1)) {
    echo $onlineuser= $row2['id'];
}

那是我的查询,它不起作用.但是这样做确实对我没有意义
从scrusersonline那里选择SELECT id,在topic_id =’$topic_id’之前按entry_time LIMIT 1订购,有人可以快速指出我在做什么错吗?

解决方法:

SELECT id,min(entry_time) FROM scrusersonline WHERE topic_id='$topic_id'

因为没有group-by子句可以从中选择min(entry_time),所以将为与topic_id匹配的每一行返回id和entry_time. SELECT子句仅定义要返回的列,它不限制行的选择-这就是WHERE子句的目的.

SELECT id FROM scrusersonline WHERE topic_id='$topic_id' ORDER BY entry_time LIMIT 1

当按entry_time排序时(这是最小值),将仅对第一个(LIMIT 1)个匹配的topic_id(WHERE topic_id =’$topic_id’)返回ID(SELECT ID).

因此,是的,从scrusersonline的SELECT id中寻找topic_id =’$topic_id’ORDER BY entry_time LIMIT.

关于如果列值相同,则仅选择具有最高id值的行如果列值相同,则仅选择具有最高id值的行数的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Django仅选择具有重复字段值的行、linux – Bash输出具有最高值的行、php – 抓取特定列中具有最高值的行、PHP-选择具有最小时间值的字段信息的相关知识,请在本站寻找。

本文标签: