Сортировка:
выбрать в меню
En - Edit -> Line Operations -> Sort Lines Lexicographically Ascending
Ru - Правка -> Операции со Строками -> Сортировка по возрастанию (По первой цифре)
Удаление дубликатов:
выбрать в меню
En - Edit -> Line Operations -> Remove Consecutive Duplicate Lines
Ru - Правка -> Операции со Строками -> Удалить последовательные дубликаты строк
Найти:(\d+\.\d+\.\d+\.\d+:\d+[\r\n]*)(?:\1)+
Заменить на:\1
Найти:(\d+\.\d+\.\d+\.\d+:\d+[\r\n]*)(?:\1){2,}
Заменить на:\1
cat ip.lst | sort | uniq
SELECT
dt,
DATEADD(MILLISECOND, pctcont_90_dt % 1000, DATEADD(SECOND, pctcont_90_dt / 1000, '19700101')) AS pctcont_90_dt,
pctdisc_90_dt
FROM (
SELECT
dt,
CAST(
percentile_cont(.90)
WITHIN GROUP (ORDER BY (datediff_big(MS, '1970-01-01', dt)))
OVER()
AS BIGINT
)
AS pctcont_90_dt,
percentile_disc(.90)
WITHIN GROUP (ORDER BY dt) over()
AS pctdisc_90_dt
FROM test
) t
;
## запускаем tmux и отправляем его в фон, добавив в конце строки &
## где ... - это ваши параметры запуска tmux
tmux ... &
## ждем 610 сек и прибиваем tmux
sleep 610 && killall -9 tmux
#!/bin/bash
tmux new-session \; \
send-keys 'htop' C-m \; \
split-window -v -p 75 \; \
split-window -h -p 30 \; \
send-keys 'watch -n1 sensors' C-m \; \
select-pane -t 1 \; \
split-window -h \; \
send-keys './disk.sh' C-m \; \
split-window -v -p 20 \; \
send-keys './stress.sh' C-m \; &
sleep 610 && kill -9 $!
столбец1 столбец2 результат
фф 123 1
фф 456 0
йцу 123 0
-- количество дублирующихся записей
SELECT столбец1, столбец2, count(*)
FROM таблица
GROUP BY столбец1, столбец2;
-- количество ПАР!!
SELECT столбец1, столбец2, count(*) div 2
FROM таблица
GROUP BY столбец1, столбец2;
-- если необходимо именно как в вопросе (количество дублирующихся записей):
SELECT t1.столбец1, t1.столбец2, cnt AS результат
FROM таблица t1
JOIN (
SELECT столбец1, столбец2, count(*) cnt
FROM таблица
GROUP BY столбец1, столбец2) t2 ON t2.столбец1 = t1.столбец1
AND t2.столбец2 = t1.столбец2
;
-- если необходимо именно как в вопросе (КОЛИЧЕСТВО ПАР!!):
SELECT t1.столбец1, t1.столбец2, cnt div 2 AS результат
FROM таблица t1
JOIN (
SELECT столбец1, столбец2, count(*) cnt
FROM таблица
GROUP BY столбец1, столбец2) t2 ON t2.столбец1 = t1.столбец1
AND t2.столбец2 = t1.столбец2
;
if (message.text is not None and bad_words[f] in message.text.lower() or
message.photo is not None and bad_words[f] in message.caption.lower() or
message.video is not None and bad_words[f] in message.caption.lower()):
await bot.delete_message(message.chat.id, message.message_id)
break
\u0442\u0435\u043a\u0441\u0442\u0020\u0432\u0020\u044e\u043d\u0438\u043a\u043e\u0434
import re
regex = r"(\\u[0-9a-zA-Z]{4})(?!\\u[0-9a-zA-Z]{4}).*?(\\u[0-9a-zA-Z]{4})"
test_str = ("\\u0442\\u0435\\u043a\\u0441\\u0442\\u0020\\u0432\\u0020\\u044e\\u043d\\u0438\\u043a\\u043e\\u0434\n\n"
"\\u0442\\u0435dsds\\n\\u043a\\u0441\\u0442das\\u0020\\u0432dsdddddd\\u0020\\u044e\\u043d\\n\\n\\n\\u0438\\u043a\\u043e\\u0434")
subst = "\\1\\2"
# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 0)
if result:
print (result)
$('.quantity_inner .bt_minus').click(function() {
let $input = $(this).parent().find('.quantity');
let $val = $('.knopka1');
let count = parseInt($input.val()) - 1;
count = count < 1 ? 1 : count;
let price_val = parseFloat($val.data('price'));
let curr_val = count * price_val;
$input.val(count);
$val.text(curr_val);
});
https:\/\/site.ru\/[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}\/$
field_name = 'longitude'
и field_name = 'latitude'
select
lng.object_id,
ltd.value as latitude,
lng.value as longitude
from obj_table lng, obj_table ltd
where lng.field_name = 'longitude'
and ltd.field_name = 'latitude'
and lng.object_id = ltd.object_id
;
select
object_id,
max(case field_name when 'latitude' then value else null end) as latitude,
max(case field_name when 'longitude' then value else null end) as latitude,
max(case field_name when 'category' then value else null end) as category
from obj_table
group by object_id;
-- собираем в json:
select
object_id,
cast(replace(group_concat(json_object(field_name,value)),'},{',',') as json) json_obj
from obj_table
group by object_id
;
-- или так:
select
object_id,
cast(concat('{',group_concat( concat('"',field_name,'":"',value,'"') separator ',' ), '}') as json) as json_obj
from obj_table
group by object_id
;
-- извлекаем поля из json:
select
object_id,
json_extract(json_obj,'$.latitude') as latitude,
json_extract(json_obj,'$.longitude') as latitude,
json_extract(json_obj,'$.category') as category
from (
select
object_id,
cast(replace(group_concat(json_object(field_name,value)),'},{',',') as json) json_obj
from obj_table
group by object_id
) t
;
состоящее в перечислении через запятую табличных выражений в предложении FROM (таблицы, представления, подзапросы) при отсутствии предложения WHERE, связывающего столбцы из перечисленных источников строк(см.)
Error: near "DAY": syntax error
DATE(DATE_ADD(NOW(), INTERVAL -3 DAY))
date ( 'now', '-3 day')
DECLARE
l_sql VARCHAR2(32767):='
SELECT 1 field_11, ''river'' field_22 FROM DUAL
UNION ALL
SELECT 1 field_11, ''sharf'' field_22 FROM DUAL
';
l_cur PLS_INTEGER := DBMS_SQL.OPEN_CURSOR;
l_ind PLS_INTEGER;
l_col_count PLS_INTEGER;
l_col_names DBMS_SQL.DESC_TAB;
l_out VARCHAR2(32767);
col_val_chr VARCHAR2(32767);
LNBR VARCHAR2(2) := CHR(13)||CHR(10);
col_delim VARCHAR2(20) := '</td><td>';
row_delim VARCHAR2(20) := '</td></tr>'|| LNBR ||'<tr><td>';
BEGIN
-- Разбор запроса
DBMS_SQL.PARSE (
l_cur,
l_sql,
DBMS_SQL.NATIVE
);
-- Получение информации о столбцах
DBMS_SQL.DESCRIBE_COLUMNS (l_cur, l_col_count, l_col_names);
-- Вывод каждого из имен столбцов
FOR col_ind IN 1 .. l_col_count
LOOP
-- Определим тип столбца
DBMS_SQL.DEFINE_COLUMN(l_cur, col_ind, col_val_chr, 32767);
-- Выводим наимнование столбца
l_out := l_out || l_col_names(col_ind).col_name;
-- Если не последний эл. вставляем разделитель
IF col_ind != l_col_count
THEN
l_out := l_out || col_delim;
END IF;
END LOOP;
-- Выполняем и фетчим курсор
l_ind := DBMS_SQL.EXECUTE (l_cur);
LOOP
l_ind := DBMS_SQL.FETCH_ROWS( l_cur );
EXIT WHEN l_ind = 0;
l_out := l_out || row_delim;
FOR col_ind IN 1 .. l_col_count
LOOP
-- Читаем и выводим значение
DBMS_SQL.COLUMN_VALUE (l_cur, col_ind, col_val_chr);
l_out := l_out || col_val_chr;
-- Если не последний эл. вставляем разделитель
IF col_ind != l_col_count
THEN
l_out := l_out || col_delim;
END IF;
END LOOP;
END LOOP;
DBMS_SQL.CLOSE_CURSOR (l_cur);
DBMS_OUTPUT.PUT_LINE('<table>'||LNBR||'<tr><td>'|| l_out ||'</td></tr>'||LNBR||'</table>');
END;
/
/*
-- Если задать разделители полей ; и LNBR то на выходе получим CSV данные
col_delim VARCHAR2(20) := ';';
row_delim VARCHAR2(20) := LNBR;
*/
SELECT count(DISTINCT c.user_id) AS first_day_order
FROM clients c
INNER JOIN orders o ON c.user_id = o.user_id
WHERE DATE(c.registered_datetime) = DATE(o.when_start)
AND DATE(c.registered_datetime) BETWEEN '2021-09-01' AND '2021-09-30'
;
SELECT count(c.user_id) AS first_day_order
FROM clients c
WHERE DATE(c.registered_datetime) BETWEEN '2021-09-01' AND '2021-09-30'
AND EXISTS (
SELECT 1 FROM orders o
WHERE c.user_id = o.user_id
AND DATE(c.registered_datetime) = DATE(o.when_start)
)
;
:a;N;$!baвесь текст становится одной строкой, поэтому немного по другому надо регулярки, см. ниже:
sed '/title/d
:a;N;$!ba
s/ \{2,\}//g
s#\s*</td>\s*</tr>\s*<tr>\s*<td>\s*#\n#g
s#\s*</td>\s*<td>\s*#;#g
s/<[^>]\+>//g
s/\n\{2,\}//g' /dev/shm/ex01.html
### Convert HTML to CSV
sed ':a;N;$!ba
s/<html.\+<table[^>]\+>//Ig
s#\s*</td>\s*</tr>\s*<tr>\s*<td>\s*#\n#Ig
s#\s*</td>\s*<td>\s*#;#Ig
s/<[^>]\+>//g;s/\s\{2,\}//g' somreport.html