select case
when a.begin is null and a.end is null then 'нет данных'
when a.begin is not null and a.end is not null then concat(a.end, '-', a.begin)
when a.begin is null and a.end is not null then concat('ранее ', a.end + 1)
when a.begin is not null and a.end is null then concat('от ', a.begin)
end interval_str,
cnt
from
(
select inters.begin, inters.end, count(prepod.name) cnt
from
(
select null begin, 1969 end union all
select 1970 begin, 1979 end union all
select 1980 begin, 1989 end union all
select 1990 begin, 1999 end union all
select 2000 begin, null end union all
select null begin, null end -- запись для тех, у кого нет данных др.
) inters -- таблица с интервалами
left join
(
select 'a' name, STR_TO_DATE('2013-02-11', '%Y-%m-%d') date_r union all
select 'aa' name, STR_TO_DATE('2010-09-01', '%Y-%m-%d') date_r union all
select 'b' name, STR_TO_DATE('1968-02-11', '%Y-%m-%d') date_r union all
select 'bb' name, STR_TO_DATE('1969-01-21', '%Y-%m-%d') date_r union all
select 'c' name, STR_TO_DATE('1980-02-11', '%Y-%m-%d') date_r union all
select 'd' name, STR_TO_DATE('1989-02-11', '%Y-%m-%d') date_r union all
select 'z' name, null date_r -- препод, у которого нет данных др.
) prepod on inters.begin <= year(prepod.date_r) and inters.end >= year(prepod.date_r)
or inters.begin is null and inters.end >= year(prepod.date_r)
or inters.begin <= year(prepod.date_r) and inters.end is null
or prepod.date_r is null and inters.begin is null and inters.end is null
group by inters.begin, inters.end
order by inters.begin desc, inters.end desc
) a
implementation "com.google.firebase:firebase-core:16.0.1"
implementation "com.google.firebase:firebase-auth:16.0.2"
implementation 'com.firebaseui:firebase-ui-auth:4.0.0'
implementation "com.android.support:appcompat-v7:${supportLibVer}"
implementation "com.android.support:support-v13:${supportLibVer}"
implementation "com.android.support:recyclerview-v7:${supportLibVer}"
implementation "com.android.support:design:${supportLibVer}"
implementation 'com.android.support:multidex:1.0.3'
implementation "com.google.android.gms:play-services-maps:${gmsVersion}"
implementation "com.google.android.gms:play-services-location:${gmsVersion}"
implementation "android.arch.lifecycle:extensions:${aacVer2}"
kapt "android.arch.lifecycle:compiler:${aacVer}"
implementation "android.arch.persistence.room:runtime:${aacVer2}"
kapt "android.arch.persistence.room:compiler:${aacVer}"
implementation "com.squareup.retrofit2:retrofit:${retrofitVer}"
implementation "com.squareup.retrofit2:converter-gson:${retrofitVer}"
implementation "com.squareup.okhttp3:okhttp:${okHttpVer}"
implementation "com.squareup.okhttp3:logging-interceptor:${okHttpVer}"
implementation 'com.karumi:dexter:4.2.0'
implementation 'com.google.code.gson:gson:2.8.4'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'ch.acra:acra-http:5.1.2'
implementation('com.afollestad.material-dialogs:core:0.9.6.0') {
exclude group: 'com.android.support', module: 'appcompat-v13'
}
implementation ('com.squareup.picasso:picasso:2.71828') {
exclude group: 'com.android.support', module: 'animated-vector-drawable'
exclude group: 'com.android.support', module: 'exifinterface'
}
у каждого пользователя есть своя страница,
можно писать сообщения в ЛС либо в общий чат,
присутствует карта города, на которой
отмечены какие-либо места с фотографиями,
также есть некая база с определёнными фотографиями/текстом, доступные всем.
remote здесь ip- IP адрес маршрутизатора надеюсь. В видео для примера указан 176.122.115.66. Этот IP выдает провайдер (белый IP) для твоего ASUS.
import codecs
import json
with codecs.open('file.txt', 'w', encoding='utf-8') as fout:
json.dump({u'абв': u'где'}, fout, ensure_ascii=False)
[guest@localhost py]$ cat file.txt
{"абв": "где"}[guest@localhost py]$
quest_id: int = -1
означает, что аргумент quest_id
принимает значения только типа int
-> list
означает, что функция возвращает список. import re;
line = '25.06.2019 272\xd0\xb0 4 13:20 - 14:50 \xd0\xbb\xd0\xb5\xd0\xba. \xd0\xad\xd0\xba\xd0\xbe\xd0\xbd\xd0\xbe\xd0\xbc\xd0\xb8\xd0\xba\xd0\xb0 \xd0\xbe\xd1\x80\xd0\xb3\xd0\xb0\xd0\xbd\xd0\xb8\xd0\xb7\xd0\xb0\xd1\x86\xd0\xb8\xd0\xb8 \xd0\x9a\xd0\xb0\xd0\xbb\xd1\x83\xd0\xb3\xd0\xb8\xd0\xbd\xd0\xb0 \xd0\x9d.\xd0\x90. 314 \xd0\x9d ';
expr = re.compile('^([0-9.]+) ([0-9\xd0\xb0-\xd1\x8f]+) (\d+) (\d+:\d+) - (\d+:\d+) (.*) (\d+ \xd0\x9d) $');
match = expr.match(line);
for val in match.groups() :
print(val);
# -*- coding: utf-8 -*-
# комментарий выше должен быть первой или второй строкой в файле исходника, содержащего юникод (здесь, русские буквы)
import re;
line = '25.06.2019 272а 4 13:20 - 14:50 лек. Экономика организации Калугина Н.А. 314 Н ';
expr = re.compile('^([0-9.]+) ([0-9а-я]+) (\d+) (\d+:\d+) - (\d+:\d+) (.*) (\d+ Н) $');
match = expr.match(line);
for val in match.groups() :
print(val);
<?php echo $color ?>
или <?= $color ?>
<?php
$type = 'add';
$color = $type == 'add' ? 'red' : 'white';
?>
<table style="width: 200px; height: 100px;">
<tr style="background:<?= $color ?>">
<td></td>
<td></td>
<td></td>
</tr>
<tr style="background:<?= $color ?>">
<td></td>
<td></td>
<td></td>
</tr>
<tr style="background:<?= $color ?>">
<td></td>
<td></td>
<td></td>
</tr>
<tr style="background:<?= $color ?>">
<td></td>
<td></td>
<td></td>
</tr>
</table>